3. Откройте cmd под правами Администратора:
4. Установите OpenStack CLI, введя команды по очереди:
pip install -U buildtools
pip install python-openstackclient
5. Проверьте, что OpenStack CLI установлен:
6. Так же Вы можете установить дополнительные пакеты для компонентов OpenStack:
pip install python-<component>client
где <component> – имя компонента:
• octavia — для работы с балансировщиками нагрузки;
• glance — для работы с образами.
8. В любой команде должны быть указаны все эти три параметра и команда должны выглядеть так:
покажет список серверов.
View this page
Toggle table of contents sidebar
Для упрощения взаимодействия с системой, нами разработан инструмент командной строки. CLI позволяет управлять всеми
сервисами Amvera не покидая консоли.
Установка¶
Для Windows
Добавьте в переменную окружения PATH путь до этой директории, чтобы система смогла найти исполняемый файл.
Для удаления CLI необходимо удалить созданную директорию вместе с файлом amvera.yml и убрать добавленное значение из переменной PATH.
Для Mac OS
Установка
Производится с использованием homebrew.
Для установки brew выполните команду
/bin/bash-ccurl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
Для установки CLI выполните команду
brewinstallamvera-cloud/brew/amvera
Удаление
Если требуется удалить CLI, выполните команду
Альтернативным способом является установка из архива.
Если у вас процессор m1/m2, используйте ссылку для скачивания архива.
Если у вас процессор intel, используйте ссылку для скачивания архива.
Для Linux
Производится с использованием homebrew.
Для установки brew выполните команду
/bin/bash-ccurl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
Для установки CLI выполните команду
brewinstallamvera-cloud/brew/amvera
Удаление
Если требуется удалить CLI, выполните команду
Ваша система может заблокировать установку с предупреждением, что файл от неизвестного издателя.
Для Mac OS это сопровождается следующим предупреждением
Для продолжения установки зайдите в настройках OC во вкладку «Защита и безопасность», разблокируйте замок в левом нижнем угу экрана и нажмите «Все равно разрешить».
Для иных ОС порядок действий схож, нужно разрешить установку в настройках безопасности.
Авторизация¶
После установки введите в командной строке:
amvera -v (или amvera version)
Если вы получите ошибку, что приложение нельзя открыть из-за невозможности проверить разработчика, используйте инструкцию по разблокировке из пункта выше.
Если все верно, cистема выведет примерно следующее
Пример использования¶
Вы получите список доступных команд (недоступные команды отмечены *).
После авторизации все команды будут доступны.
Пример вывода списка доступных команд
Посмотреть описание и пример использования команды, можно подставив флаг -h, например
amveraenv-deletemy-project
В таком случае, значения должны идти в строгом порядке, указанном в “help”.
Во избежание ошибок рекомендуем указывать опции явно, тогда можно нарушить порядок:
amveraend-delete-i-pmy-project
Если требуется Boolean значение, то достаточно просто указать флаг
Так же валидны:
amveracreate amveracreate-c amveracreate-c
Если значение состоит из двух слов, то их нужно заключить в кавычки.
В ОС Windows есть некоторые функции, которые вы можете запустить только из командной строки (Command Prompt). Несколько из них не имеют графического интерфейса, в то же время, другие, запущенные таким образом, просто работают быстрее.
Неважно, используете ли вы PowerShell как надстройку для командной строки, или нет, все команды, о которых мы расскажем в этой статье, работают везде одинаково. Очевидно, мы не сможем охватить все команды и рассказать о каждой. Вместо этого мы сфокусируемся на тех, которые, как нам кажется, будут наиболее полезны. Даже если вы не любите работать с командной строкой.
- Как запустить командную строку в Windows от имени администратора
- ipconfig: Быстрая работа с сетевыми соединениями
- ipconfig /flushdns: Очистить-сбросить кэш DNS
- ping и tracert: Устранение проблем с сетевым подключением
- shutdown: создание ярлыков завершения работы Windows
- sfc /scannow: Проверка целостности системных файлов Windows
- telnet: Подключение к серверам Telnet
- cipher: постоянное удаление и перезапись каталога
- netstat -an: Список сетевых подключений и портов
- nslookup: Найдите IP-адрес по доменному имени
- Вопросы и ответы
- Комментарии
Как запустить командную строку в Windows от имени администратора
В Windows 10:
- Нажмите кнопку «Пуск» или выберите «Поиск» – начинайте вводить слово «cmd» на английском языке или «Командная строка» на русском.
- Сверху появится результат поиска, кликните по «Командная строка» правой кнопкой мыши и нажмите на пункт «Запуск от имени администратора».
В Windows 8 и 8.1:
- Перейдите на начальный экран, нажав кнопку «Windows» на клавиатуре или кнопку «Пуск».
- Справа вверху нажмите на «Поиск» и начинайте вводить слово «cmd» или «Командная Строка». Внизу откроется результат поиска.
- Кликните по приложению «Командная строка» правой кнопкой мыши и выберите пункт «Запуск от имени администратора».
В Windows 7:
- Нажмите на кнопку «Пуск», пройдите во вкладку «Мои программы» – далее перейдите в «Стандартные».
- Найдите ярлык «Командная строка» и кликните на ней правой кнопкой мыши, выбираем пункт «Запуск от имени Администратора».
Теперь приступим непосредственно к командам.
ipconfig: Быстрая работа с сетевыми соединениями
Чтобы использовать эту утилиту, просто введите «ipconfig» в командной строке и нажмите «Enter». В результате вы увидите список всех сетевых подключений, которые использует ваш компьютер. Посмотрите ниже надписи «адаптер беспроводной локальной сети», если вы подключены к Wi-Fi, или «Адаптер Ethernet», если вы подключены к проводной сети. Для получения более подробной информации об «ipconfig» наберите команду «ipconfig /all», в результате будет выведен список всех ключей, и, соответственно, возможностей утилиты.
ipconfig /flushdns: Очистить-сбросить кэш DNS
Если вы изменили DNS-сервер в настройках сети, то данное действие не сразу вступит в силу. Windows использует кеш, в котором хранятся полученные ответы DNS, это экономит время при повторном доступе к тем же сетевым ресурсам в будущем. Чтобы Windows получала адреса от новых DNS-серверов введите команду «ipconfig /flushdns» после изменения вашего DNS-сервера.
ping и tracert: Устранение проблем с сетевым подключением
Если у вас возникли проблемы с подключением к локальной сети, сети Интернет или к какому-либо веб-сайту, то в Windows есть стандартные инструменты, которыми вы можете воспользоваться для их решения.
«tracert» — это служебная утилита, предназначенная для отслеживания маршрутов следования данных в сетях TCP/IP. При вводе команды «tracert», отображается полный маршрут доставки пакета, с информацией о каждом сервере, через которые он проложен. Например, если вы введёте «tracert hetmanrecovery.com», то получите информацию о каждом узле по пути к нашему серверу, с которыми пакет взаимодействует. Если у вас возникли проблемы с подключением к веб-сайту, утилита «tracert» определит на каком этапе произошла ошибка.
shutdown: создание ярлыков завершения работы Windows
Команда «shutdown» позволяет выключить или перезагрузить Windows из командной строки. В принципе, это более полезно для Windows 8, где стандартную кнопку «Выключение» было сложнее найти. Эту команду можно использовать для создания собственных ярлыков: «Завершение работы», «Перезагрузка», «Спящий режим» и т.д. И разместить их где вам удобно: в меню «Пуск», на рабочем столе, на панели задач..!
Чтобы использовать команду в командной строке, просто введите одно из следующих значений (все параметры команды вводятся через обратный слэш):
- «shutdown /s /t 45» – аналог «Завершение работы» c задержкой 45 секунд.
- «shutdown /r /t 0» – аналог «Перзагрузка».
- «shutdown /l» – аналог «Выход из системы/Смена пользователя».
- «shutdown /r /o» – перезагружает компьютер в Среде восстановления.
Далее приведу пример как создать ярлык для завершения работы в Windows 10.
Кликните в любом пустом месте Рабочего стола правой кнопкой мыши – наведите курсор на «Создать» – из выпадающего меню выбираем «Ярлык». Сразу запустится мастер создания ярлыков.
В поле «Укажите расположение объекта» прописываем строку «shutdown -s -t 45» (обратите внимание, что в данном случае все параметры нужно указывать через дефис, а не через обратный слэш), нажимаем «Далее».
Собственно, введите имя ярлыка в соответствующее поле и нажмите «Готово».
Ярлык создан, но соответствующей иконки у него нет. Чтобы её поставить нажмите правой кнопкой мыши на ярлыке и выберите «Свойства» – На вкладке «Ярлык» кликните на «Сменить значок» – будет выведено сообщение системы о том, что «shutdown.exe» не содержит иконок и откроется окно выбора оной из стандартной библиотеки Windows. Выбираем понравившуюся и нажимаем два раза «Ok».
Теперь, ярлык можно разместить где хотите, скажем на начальном экране. Нажмите правой кнопкой мыши по ярлыку – выбираем «Закрепить на начальном экране».
sfc /scannow: Проверка целостности системных файлов Windows
«sfc» — это стандартная утилита для проверки целостности системных файлов Windows. Она позволяет пользователю найти и восстановить недостающие системные файлы. Если, по какой-то причине, файлы отсутствуют или повреждены, то утилита просканирует их все и заменить ошибочные версии файлов исходными версиями. Кроме того, средство проверки системных файлов проверяет каталог кэша и, если потребуется, обновляет его содержимое.
Чтобы провести сканирование, нужно обязательно запустить командную строку как администратор, прописать команду «sfc /scannow» и дать программе сделать свою работу. Более подробно об «sfc /scannow» читайте здесь.
telnet: Подключение к серверам Telnet
Клиент протокола «telnet» в ОС Windows не установлен по умолчанию. Но это одна из её дополнительных функций, которую вы можете установить через панель управления. После установки вы сможете использовать команду «telnet» для подключения к серверам без установки дополнительного ПО, прямо из командной строки.
Просто перейдите «Пуск» – «Панель управления» – «Программы и компоненты» – далее кликните «Включение или отключение компонентов Windows» – находим и ставим галочку «Клиент Telnet».
cipher: постоянное удаление и перезапись каталога
Команда «сipher» обеспечивает эффективные функции шифрования и дешифрования файлов и каталогов в ОС Windows. Также у нее есть опция, которая будет перезаписывать мусорными данными свободное дисковое пространство. Это не позволит восстановить удаленные файлы и папки с помощью специализированного ПО. В ОС Windows файлы, удалённые обычным способом, остаются на диске, если вы не используете твердотельный накопитель c функцией Trim. Команда «сipher» позволяет эффективно «стереть» всё свободное пространство на диске без установки дополнительного ПО.
Например: чтобы очистить дисковое пространство на диске F:, введите команду «сipher /w:F:\». Обратите внимание, что между ключом команды (/w:) и буквой диска (F:\) нет пробела.
netstat -an: Список сетевых подключений и портов
nslookup: Найдите IP-адрес по доменному имени
Это далеко не полный список всех команд, которые могут вам пригодиться. Мы дали представление о десяти полезных утилитах командной строки в ОС Windows, и надеемся, что вам будет легко пользоваться ими в будущем.
Для подключения к CLI с использованием монитора и клавиатуры необходимо выполнить следующие шаги:
Подключить монитор к разъему VGA(HDMI), клавиатуру к разъему USB. | |
Для подключения к CLI с использованием последовательного порта необходимо выполнить следующие шаги:
Шаг 2. Запустить терминал. | Запустить терминал, позволяющий подключение через последовательный порт, например, Putty для Windows или minicom для Linux. Установить подключение через последовательный порт, указав параметры подключения 115200 8n1. |
Для подключения к CLI по сети с использованием протокола SSH необходимо выполнить следующие шаги:
Шаг 1. Разрешить доступ к CLI (SSH) для выбранной зоны. | Разрешить доступ для протокола CLI по SSH в настройках зоны, к которой вы собираетесь подключаться для управления с помощью CLI. Будет открыт порт TCP 2200. |
Шаг 2. Запустить SSH-терминал. | |
После успешного входа в CLI можно посмотреть список возможных команд с помощью команды help. Для подробного описания любой команды необходимо использовать синтаксис
Например, для получения подробной справки по использованию команды настройки сетевого интерфейса iface необходимо выполнить
Полный список команд:
Показывает список доступных команд. | |
Выйти из CLI. | |
Очистка кэша LDAP-записей. | |
code-change-control show – показывает текущий режим работы. По умолчанию отслеживание несанкционированных изменений исполняемого кода отключено. code-change-control set off – отключает режим отслеживания несанкционированных изменений исполняемого кода. Требует указания пароля, который был задан при активации режима отслеживания исполняемого кода. | |
config-change-control show – показывает текущий режим работы. По умолчанию отслеживание изменений конфигурации отключено. config-change-control set off – отключает режим отслеживания изменений конфигурации. Требует указания пароля, который был задан при активации режима отслеживания конфигурации. | |
Посмотреть текущее время на сервере. | |
Набор команд для изменения параметров устройства.
Список доступных параметров:
| |
Посмотреть или задать значения шлюза. Смотрите gateway help для детальной информации. | |
Набор команд для просмотра и настройки параметров сетевого интерфейса. Смотрите iface help для детальной информации. Следующие параметры команды iface позволяют управлять пересылкой пакетов directed broadcast, приходящих на указанный интерфейс: iface config -name port X -link-info ‘bc_forwarding=1’ -enabled true iface config -name port X -link-info ‘bc_forwarding=1’ -enabled false iface config -name port X -link-info ‘proxy_arp=1’ -enabled true iface config -name port X -link-info ‘proxy_arp_pvlan=1’ -enabled true | |
Посмотреть информацию о лицензии. | |
Проверить доступность стороннего HTTP/HTTPS-сервера. -t – максимальный таймаут ожидания ответа от веб-сервера -d – запросить содержание сайта. По умолчанию запрашиваются только заголовки. | |
Набор команд для просмотра и настройки узлов кластера. Смотрите node help для детальной информации. | |
Выполнить ping определенного хоста. | |
Набор команд для просмотра и настройки параметров прокси-сервера. Позволяет настроить такие параметры, как добавление заголовков HTTP – via и forwarded, а также настройки таймаутов на подключение к сайтам и на загрузку контента:
Рекомендуется не изменять значения по умолчанию. Смотрите proxy help для детальной информации. | |
Создать, изменить, удалить маршрут. | |
Набор команд для просмотра и настройки режима работы телеметрии. Телеметрия позволяет отправлять разработчику анонимную статистику, такую как, популярность веб-сайтов, веб-сайты с неизвестной категорией, вирусные атаки, события , активность малваре. Данные телеметрии имеют вид обезличенных данных и не содержат персональную информацию. Отправка телеметрии активирована по умолчанию. telemetry show – показать текущий режим. telemetry set -enabled true – активировать телеметрию. telemetry set -enabled false – отключить отсылку телеметрической информации. | |
Выполнить трассировку соединения до определенного хоста. | |
Команда для сброса авторизации указанного пользователя. | |
Набор команд для просмотра режима авторизации веб-консоли. Позволяет вернуть режим По имени и паролю при невозможности авторизоваться с помощью сертификатов. | |
Набор команд для просмотра и настройки параметров зоны. Смотрите zone help для детальной информации. |
Не для кого не секрет, что некоторые типичные действия на компьютере проще быстрее и эффективнее выполнить из-под командной строки нежели мышкой в GUI explorer(e).
Поэтому в этом тексте я хотел бы поделиться командами, которые мне очень часто помогают в повседневной работе.
То что я тут напишу этим обычно не делятся. Как правило у каждого разработчика есть свой потайной сheat-list полезных консольных команд для выполнения какой-либо работы.
Наверное этот текст также обидит чувства Windows пользователей, так как тут по сути предлагается использовать Unix(овые) утилиты в OS Windows. Многие пользователи Windows, которых я знаю религиозно презирают Linux и всё, что с этим связано. Предвижу что текст уйдет в глубокий минус.
Пользоваться Unix утилитами в OS Windows это тоже, что если бы американские солдаты во время своих зверств во Вьетнаме бросали бы свои винтовки M-16, а пользовались бы исключительно и только автоматами Калашникова. Однако, тем не менее, и такое было!
Но на самом деле нет ничего плохого в том что на Windows 10 запускать Unix утилиты. Это лишь подчёркивает тот факт, что хороший компьютер это, прежде всего, универсальный вычислитель.
Итак, Unix(овые) утилиты для командной строки можно с легкость отрабатывать и в операционной системе Windows, если установить GIT и открыть консоль GIT.

Также их можно установить из CygWin или MinGW.

Полезные команды в интерпретаторе Bash
26–На работе мне в мессенджер Junior программисты микроконтроллеров часто пишут личные сообщения типа:
Для этого есть очень простой шаблон на основе утилиты grep. Открываешь папку корня workspace репозитория и набираешь команду
grep -rn "UsecToStr(" | grep "\.c:"
Тут опция -r значит искать во всех папках, -n значит показывать в отчете номер строки на которой обнаружилась искомая подстрока. В общем, ступенчатый grep способен найти даже иголку в стоге сена!
Правда в том, что если у Вас локально на SSD/HDD диске есть Си-код и Вы знаете и умеете пользоваться утилитой grep, то Вам в принципе не нужна никакая другая документация для кода! Любую информацию Вы сможете извлечь при помощи grep запросов.
1–Показать абсолютный путь к утилите, например grep
where grep
2–Рекурсивно заменить слово old_word на new_word во всех файлах внутри директории.
grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'
Тут для grep -r означает, что искать внутри папок рекурсивно, -l означает показывать только пути к файлам. Для sed -i означает, что замена слова будет произведена прямо в этом же файле (in place), s означает что надо заменить первый токен на второй токен, флаг g заменяет все вхождения заменяемого токена.
Также бывает очень полезно сделать автоматическую замену предложения в конкретном файле. Это часто происходит из-за несовместимости между настройками IDE Eclipse в файле .cproject. Чинится это так.
sed -i -e 's/ARM family/Arm family (-mcpu)/g' .cproject
sed -i -e 's/"GNU Tools for ARM Embedded Processors"/"xPack GNU Arm Embedded GCC"/g' .cproject
25–Во всех файлах в этой папке (включая вложенные папки с файлами) удалить все строки в которых есть ключевое слово KeyWord, начиная с данной директории
find . -type f -print0 | xargs -0 sed -i /KeyWord/d
Вообще с командой sed надо быть очень осторожным! Sed может тихо изменить там, где это не следует (например *.ewp настройки проекта в IAR), и потом не откроется проект в вашей любимой GUI-IDE. Как следствие Вы не сможете больше никогда собрать свой проект. И у Вас могут начаться из-за этого паника, судороги и конвульсии.
3–Показать размер папок
du -a --max-depth=1 | sort -n
4–Показать переменные окружения. Это очень частая команда для проверки системы перед сборкой.
env
5–Найти все файлы с расширением .bak
find . -type f -name "*.bak"
6–Удалить все файлы с расширением .bak
find . -type f -name "*.bak" -delete
7–Открыть все *.mk файлы
for f in $(find . -name '*.mk' -not -name "sub"); do start Notepad++ $f; done
8–Удалить строку 35 из файла file.doti
sed -i '35d' file.doti
9–Найти все директории с именем Drivers в данной папке
find . -name 'Drivers' -type d
10–Найти *.с и *.mk файлы в локальном GIT репозитории
git status | grep -e "\.mk" -e "\.[ch]" | grep -v "\.cmake" | grep -v "\.html"
11–Отсортировать процессы по потреблению RAM
tasklist | sort -k5
12–Узнать количество свободно места на диске
df -h
13–Показать размер папок
du -hs * | sort -hr
14–Установить переменную окружения в Bash
export var=some_value
В консоли Windows cmd переменные окружения устанавливаются так
set VAR_NAME=VAR_VALUE
15–Удалить папку со всем её содержимым.
rm -rf folder_to_delete
16–Отсортировать строки по конкретной колонке.
sort -nr -k6 -t'|' LoRaByteRatesTable.txt -o LoRaByteRatesTable_sorted.txt
17–Найти все файлы больше 10Mbyte.
find -type f -size +10M
18–Поиск файла по расширению *.s.
find . -name '*.s'
19– Команда, которая ищет во всех файлах проекта места с упоминанием ключевого слова “LED”, причем только в файлах board.h
grep -rn LED | grep board.h
Это команда приведена только для примера, что через консоль можно делать поиск поверх предыдущего поиска. Так называемый многоступенчатый поиск. Встроенному поиску из-под GUI-IDE такое даже и не снилось.
20–Показать состояния TCP соединений.
netstat -n -p TCP
Опция -n показать IP адрес и локальный порт, -p значит указать название протокола
21– Автоматически отсортировать строчки в конфиг файле по алфавиту и еще при этом удалить повторения.
sort.exe -u config.mk -o config.mk
Мега полезная команда так как после нее образуется минимальный diff в утилите WinMerge. Эту команду вообще надо прописать в скрипты сборки кода.
22–Показать все файлы с расширением *.mk в git репозитории
git status | grep "\.mk"
Вообще консольный git и grep это не иначе как неразрывные друзья! Можно также найти все файлы любого другого расширения. Выбрать то, что вы хотите зафиксировать и сделать очень прицельный и аккуратный коммит.
23–Типичная ситуация. Вы делаете git pull и получаете вот такую картинку.

Проблема это сообщение
Для того чтобы загрузить изменения из удаленного репозитория и продолжить работу надо переименовать папку nrf5340_dk_nortos_max98357a_m. И естественно это можно сделать из командной строки. Грубо говоря, не отходя от кассы.
mv source/projects/nrf5340_dk_nortos_max98357a_m/ source/projects/nrf5340_dk_nortos_max98357a_m_old7
И также надо переименовать файл flash_preconfig.mk из командной строки. Делает это команда mv
mv source/mcal/mcal_common/flash/flash_preconfig.mk source/mcal/mcal_common/flash/flash_preconfig_old.mk
Далее уже имея две папки (локальная и от удаленного репозитория) можно сравнить две версии в культовой утилите WinMerge и выбрать лучшее из обоих версий файлов для сборки очередной прошивки.
27– Иной раз надо целиком скопировать одну папку в другую папку без лишних вопросов о подтверждении действий. Для этого существует Windows утилита robocopy
robocopy dir/source_dir dir/destination_dir /S
Тут /S означает копировать поддиректории за исключением пустых директорий
24– Найти все папки в которых отсутствуют файлы с расширением *.gvi
comm -3 <(find . -type f -name ".gvi" -exec dirname {} ; |sort -u) <(find . -type d |sort -u)
Сначала строится список всех локальных директорий, которые содержат файлы *.gvi,
find . -type f -name ".gvi" -exec dirname {}
этот список всех локальных директорий, которые содержат файлы *.gvi сортируется.
find . -type f -name "*.gvi" -exec dirname {} ; |sort -u
Затем строится просто список всех локальных директорий
find . -type d
список всех локальных директорий тоже сортируется.
find . -type d |sort -u
После чего эти списки сравниваются и подавляются строчки фигурирующий в обоих файлах (comm –3). Остаются только строчки, которые показывают те папки в которых нет какого-либо специфического расширения.
Это очень удобная команда для самопроверки факта окончания работы по какому-либо программному компоненту. Например добавлению *.cmake файлов в кодовую базу
28– Показать количество строк Си-кода во всей локальной кодовой базе
find . -name '*.[ch]' -type f -print0 | xargs -0 cat | wc -l
Это очень полезная команда для оценки масштаба репозитория с которым приходится работать. Например сейчас у меня репозиторий в котором лежит 8.7 миллионов строк кода.
29–Взять все файлы в этой папке и в каждом имени файла переименовать подстроку at24c02mtr на at24cxx
find . -type f -exec rename -v at24c02mtr at24cxx {} \;
Эта очень удобная команда, когда надо написать программный компонент по образу и подобию другого программного компонента. Сначала переименовываем названия файлов (find+rename)

а потом переименовывает ключевые слова в самих файлах (grep+sed)
grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'
и “Вуаля”! Вся работа выполнена двумя строчками кода в командной строке!
Как видите, использование командной строки CLI позволяет снизить утомляемость от напряжения внимания и, как следствие, существенно повысить производительность работы за персональным компьютером PC.
Если говорить метафорично, то утилиты Unix – это как химическая посуда (пробирки, колбы, делительные воронки, мензурки, воронки, фильтры, капельницы, часовые стекла, стеклянные палочки), только применительно к данным (числам и тексту). Видимо авторы UNIX в 196х-197х были серьезно вдохновлены химией при разработке компьютерных консольных утилит. Согласитесь, что ну невозможно не заметить этих аналогий между UNIX утилитами и химической посудой.

Если Вы тоже знаете какие-либо простые элегантные и главное полезные консольные команды, то пишите их в комментариях. Не обязательно из bash можно и из cmd или вообще из powershell(а). Лишь бы эти команды умещались в одну строку.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь за компьютером командной строкой?
Проголосовали 177 пользователей. Воздержались 7 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
В какой операционной системе вы обычно работаете?
Проголосовали 202 пользователя. Воздержались 6 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Откуда вы берете Unix(овые) утилиты для Windows?
Проголосовали 53 пользователя. Воздержались 82 пользователя.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь утилитой grep?
Проголосовали 172 пользователя. Воздержались 11 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь GIT(ом)?
Проголосовали 177 пользователей. Воздержались 8 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой консолью Вы чаще пользуетесь?
Я не пользуюсь консолью. Я предпочитаю пользоваться курсором мышки и изредка горячими клавишами.
Проголосовали 39 пользователей. Воздержались 2 пользователя.
Интерфейс командной строки (терминал, консоль, Command line interface, CLI) позволяет человеку взаимодействовать с компьютером с помощью текстовых команд заданного формата. Эти команды указывают, что и в какой последовательности делать. В ответ компьютер может выводить на экран информацию о результатах работы той или иной команды.
Взаимодействие с компьютером через текст появилось практически на самых первых этапах развития компьютерной техники. Такой интерфейс выглядит хоть и скучновато, но является очень мощным инструментом. В Unix-подобных системах CLI помогает пользователю настраивать операционную систему и службы в них, взаимодействовать с файлами, внешними устройствами, подключёнными к компьютеру сетями, Интернетом. В Unix-подобных системах любые данные, устройство или программа в абстракции операционной системы представляется в виде файла, именно поэтому терминал в них обладает такой мощью. В других операционных системах также существуют интерфейсы командной строки, но их функциональность ограничена, как правило, сервисными функциями для управления операционной системой.
В «Терминале» текстовый интерфейс для пользователя выглядит следующим образом:
Для удобства читателя примеры ниже не содержат приглашения командной строки, однако, на практике терминал будет его выводить в том или ином виде.
В современных операционных системах можно использовать одновременно несколько терминалов, в каждом из которых могут выполняться свои команды. Если говорить в общем, то к CLI можно подключиться и с другого компьютера через сеть.
Каждая команда уникальна, иначе операционная система не сможет понять, что ей нужно делать. Команда — это всегда специальное слово, которое запускает отдельное приложение: пользовательскую программу, консольную утилиту, службу и тому подобное. Например, можно узнать текущую дату командой:
Нажмите клавишу Enter, чтобы выполнить команду. Все, что идёт после команды, называется аргументами командной строки. Часть специальных аргументов, которые настраивают работу команды, принято называть ключами (флагами, параметрами). С помощью ключей пользователь может указать, в каком режиме будет работать команда, задать значения по умолчанию и прочее. Ключи, состоящие из нескольких символов, принято обозначать двумя дефисами в начале. Например, для большинства команд можно посмотреть короткую справку с помощью ключа -
. Часто используемые длинные ключи также имеют короткий аналог (псевдоним, alias) из одного символа, например -h
для той же справки. Короткие ключи, как правило, можно указывать вместе, поставив перед ними дефис:
cal
— вывод календаря для текущего месяца с подсвеченной текущей датой;cal
— не подсвечивать текущую дату;- h cal
— не подсвечивать текущую дату и заменить числа месяца на номер дня в году;- hj cal
— не подсвечивать текущую дату и вывести календарь для всего текущего года.- hy
Символ # в начале строки используется для однострочного комментария.
Вывести список всех терминалов, которые работают сейчас в системе с указанием пользователя, от имени которого они запущены и времени запуска, можно так:
Для большинства стандартных команд существует подробное описание ключей и аргументов. Это описание доступно по команде man
(от “manual”). Вы можете посмотреть краткую справку для этой команды так:
На следующей строке вы видите текущую версию программы, затем идёт описание формата команды. Квадратные скобки указывают на аргумент, который можно использовать, но он не является обязательным. Без квадратных скобок указываются аргументы, которые использовать необходимо. Этого синтаксиса, как правило, придерживаются в любой справочной информации для команд текстового интерфейса. Например name
обозначает имя команды, справку о которой мы хотим получить. Для получения справки по команде pwd
нужно выполнить:
- корневую директорию, которая доступна в /;
- домашнюю директорию пользователя, доступную в /home/<имя пользователя> или по псевдониму ~;
- директорию .., которая присутствует во всех директориях и обозначает ссылку на директорию, расположенную на уровень выше;
- директория ., которая также присутствует во всех директориях и является ссылкой на текущую директорию.
В Unix-подобных системах скрытые директории и файлы помечаются точкой в начале.
Сочетание клавиш Ctrl A позволяет переместиться к началу строки, Ctrl E — к концу. Нажав Ctrl L вы сможете очистить экран, переместив строку приглашения на верх окна. То же самое делает команда clear
. Клавиша Tab позволяет использовать автодополнение, например, для имён директорий или файлов. Двойное нажатие позволит посмотреть все доступные варианты. Клавишами ↑, ↓ можно перемещаться по списку уже выполненных команд, что бывает очень удобно. Чтобы посмотреть полный список команд, которые были вызваны ранее, выполните:
Количество команд, хранящихся в истории, ограничено настройками терминала. Все настройки обычно сосредоточены в одном файле конфигурации, расположенном в домашней директории пользователя. Подробно о настройке терминала можно почитать, например, в статье «Делаем Linux терминал красивым и удобным».
Существует довольно много разных терминалов. Самые распространённые для Unix-подобных систем — bash и zsh. Наиболее полный список терминалов можно посмотреть в таблице.
советует
Файловая система
Файловая система в Unix-подобных операционных системах устроена немного иначе, чем в Windows. В ней тоже есть корневая директория и дерево директорий (папок), но есть и особенности. Например, в Linux файлами считается абсолютно все. Даже директория в Linux — это файл со списком файлов, которые в ней расположены, а принтер или монитор представлены в виде файлов, в которые записываются новые символы.
Все эти файлы образуют дерево с корнем в директории /
. Для разделения уровней дерева файлов используется символ /
. Любое устройство, подключённое к компьютеру, файлы, диски, флэш-накопители, сетевые директории, устройства в сети, мониторы, принтеры, сканеры можно найти в дереве.
Существуют и логические диски но они не обозначаются отдельными буквами, как в Windows. Для доступа в тому или иному логическому диску (разделу) его сначала надо примонтировать, а затем использовать как обычную директорию. Монтирование — процесс помещения файловой структуры внешнего устройства в дерево директорий операционной системы. Процесс монтирования обычно автоматизирован, вам редко придётся использовать специальные команды mount
и umount
, чтобы примонтировать или отмонтировать какой-либо жёсткий диск, флэш-накопитель или другое устройство. Вы можете управлять местом монтирования (директорией, в которой будет доступна файловая система подключаемого устройства). По умолчанию все подключаемые устройства, как правило, располагаются в /media
в директории с именем устройства в системе.
Поскольку в Unix-подобных системах всё является файлами, существует довольно богатая функциональность для работы с ними в интерфейсе командной строки. Примеры работы с файлами и директориями:
Структура директорий в Unix-подобных системах часто бывает похожей. Но это не должно вводить в заблуждение, все директории равнозначны и могут использоваться произвольно. Важно, что для системных директорий по умолчанию правильно выставлены права доступа.
Чаще всего в директории /home
хранятся домашние директории пользователей, в директории /bin
— системные утилиты, директория /etc
используется для служб, /tmp
— для хранения временных файлов, /var
— для пользовательских приложений.
В Unix-подобных системах существует понятие ссылки. Это специальный файл, и если вы обращаетесь к нему, то операционная система переадресует вас к целевому файлу или целевой директории. Эта переадресация не является переходом в другое место дерева директорий, это подмена содержимого файла или директории «на лету». Ссылки бывают символическими, или мягкими (symbolic links), и жёсткими (hard links). Символические ссылки ближе всего к ярлыкам. При удалении целевого файла ссылка остаётся. Жёсткие ссылки существуют на более глубоком уровне файловой системы, это своеобразный синоним файла (директории). Они указывают на сам файл (директорию), а не на путь, как это реализовано для символических ссылок. При перемещении целевого файла жёсткая ссылка остаётся рабочей. Разница показана на рисунке:
Чтобы управлять ссылками, воспользуйтесь командами:
ln
— создание жёсткой ссылки;/ tmp symlink ln
— создание символической ссылки;- s / tmp symlink ls
— вывести информацию о ссылках (для символических будет указан путь).- l
Доступ и пользователи
Изначально при проектировании операционной системы Unix был заложен принцип «Что не разрешено, то запрещено». Поскольку любая сущность является файлом, этот принцип означает, что по умолчанию в Unix-подобных операционных системах доступ ко всем файлам запрещён для всех пользователей, кроме суперпользователя с именем root
. В дальнейшем с появлением пользователей в операционной системе им предоставляют права для отдельных объектов. На таком последовательном процессе построена безопасность использования. Работа от имени суперпользователя не рекомендуется. Вместо этого можно использовать специальный режим, выполняя команды от имени суперпользователя:
sudo <команда> <аргументы>
команда аргументы
Password:
Возможность работы от имени root
доступна не всем пользователям, а только тем, которые находятся в специальном списке. Редактировать список, а также другие параметры команды sudo
можно с помощью редактора vi
, выполнив команду:
visudo
В Unix-подобных операционных системах доступ к файлам основан на ACL. Доступ получает не сам пользователь, а процесс (приложение, служба). Например, чтобы прочитать содержимое файла, используется программа для чтения cat
.
У каждого файла есть не только идентификатор пользователя UID, который используется для указания владельца файла, но и идентификатор группы GID — для группы владельцев. Установить имя пользователя и имя группы, которые будут владельцами файла, можно с помощью команды:
При обращении процесса к файлу или директории операционная система определяет, предоставить ли к нему доступ, по следующей схеме:
Для установки прав доступа к файлу владельца, группы владельцев или любого пользователя применяется последовательность символов -
, r
, w
, x
(от слов read, write, execute) или трёх цифр от 0 до 7 (восьмеричная система счисления). Соответствие символов и цифр представлено в таблице:
Цифра | Символ | Права | Применение |
---|---|---|---|
0 | — | ничего нельзя | Доступ к файлу запрещён |
1 | –x | запуск | Запуск приложения / открытие директории |
2 | -w- | изменение | Можно менять содержимое |
3 | -wx | запуск + изменение | Комбинация прав доступа |
4 | r– | чтение | Есть доступ на чтение |
5 | r-x | чтение + запуск | Комбинация прав доступа |
6 | rw- | чтение + изменение | Комбинация прав доступа |
7 | rwx | все можно | Полный доступ |
chmod 754 file.txt
file.txt
В примере владелец имеет возможность делать с файлом все что угодно, группа владельцев — может читать файл или выполнять (такое право нужно, например, для запуска программ), для всех остальных доступна только операция чтения. Эти же права на файл можно установить и с помощью символов так:
chmod -rwxr-xr-- file.txt
-rwxr-xr-- file.txt
Последовательность символов важна: r
может стоять только на первом месте, w
— на втором, а x
— на третьем. Первый символ -
в начале строки параметров -rwxr
показывает, что перед нами файл. При вызове команды для вывода списка содержимого папки для отображения настроек доступа будет использоваться именно эта символьная запись:
Если первый символ в настройках доступа d
, то перед нами директория, если l
, то — ссылка на другой файл или папку.
Цифры переводятся в восьмеричную систему счисления из флагов, записанных в двоичной системе. Если вы будете пользоваться цифрами, то легко запомнить, что положение букв в символьной записи и чисел двоичного кода связано. Например, выражение rw
является аналогом 110
, что в восьмеричной системе будет равно 6
. Вы можете посмотреть полный список в таблице.
Таким образом каждому файлу ставится в соответствие владелец и группа владельцев (UID и GID), а также три числа для указания прав, которые есть у владельца (UID), группы владельцев (GID) и всех остальных пользователей. Чтобы узнать имя вашего пользователя, выполните:
Управлять пользователями и группами пользователей в операционных системах семейства Linux можно с помощью набора команд:
useradd <username>
— создание нового<username>
пользователя;cut
— посмотреть всех пользователей;- d : - f1 / etc / passwd passwd
— изменение пароля пользователя;usermod
— добавление пользователя- a - G <usergroup> <username> <username>
в группу пользователей<usergroup>
;groups
— посмотреть все группы, в которых состоит пользователь.
Продвинутый уровень использования CLI
Если что-то пошло не так (например, поехали шрифты или временно применились не те настройки), можно ещё раз инициализировать терминал без его перезагрузки:
reset
Выполнить предыдущую команду:
Использовать текст предыдущей команды:
mkdir -p ~/test/cli/last-cmd> mkdir -p ~/test/cli/last-cmd/double
~/test/cli/last-cmd
/double
~/test/cli/last-cmd/double
Использовать при отказе в доступе:
Заменить части текста в предыдущей команде:
Можно работать и с аргументами предыдущей команды.
Использовать значения последнего аргумента:
mkdir -p ~/test/cli/last-arg
~/test/cli/last-arg
$
Создать директории с похожим именем:
Выполнить несколько команд подряд можно так:
cd ~/test/cli && mkdir test1 && cd test1 && touch test.txt && ls -l
~/test/cli test1 test1 test.txt
В терминале существует два режима работы: приоритетный (по умолчанию) и фоновый. В первом терминал ожидает завершения работы очередной команды и, только после её завершения, выводит приглашение командной строки для выполнения следующей команды. Фоновый режим позволяет не дожидаться завершения работы команды. Иногда это бывает полезно, например при длительных операциях. Выполнить команду в фоновом режиме можно так:
Разархивация большого архива в приоритетном режиме:
tar xf archive.zip
xf archive.zip
Разархивация большого архива в фоновом режиме:
<number>
— номер фонового процесса. Число, которое соответствует <
, можно использовать для мониторинга и управления. Пример:
jobs
— вывести список фоновых процессов;fg
— перевести последний запущенный фоновый процесс в приоритетный режим;fg <number>
— перевести фоновый процесс под номером<number>
в приоритетный режим.