Официальный cli github
Содержание:
- Опция
- Парсим опциональные параметры с click
- — Настройка сетевого интерфейса через графический интерфейс [GUI]
- Аргументы
- Применение
- Добавляем автоматически генерируемые инструкции по использованию
- Недостатки
- Назначение
- Горячие клавиши для управления командной строкой
- Достоинства и недостатки[править]
- Строка использования приложения (спек)
- Основы интерфейса командной строки
- Формат команды
- Назначение
- Применение
- Команды командной строки.
- Достоинства
- Локальный сервер
- Зачем вам писать скрипты и инструменты для командной строки на Python?
- GPL Code
- Назначение
- Примеры использования
Опция
Опция может быть следующих простых типов:
- Булево
- Строка
- Число
- Дата
Также опция может принимать массивы данных типов, например:
- МассивЧисел
- МассивСтрок
- МассивДат
- Перечисление
Для простых типов поддерживается определение типа по значение по умолчанию. Пример,
Отладка = Команда.Опция("f force", ,"Описание опция") .ТБулево() // тип опции Булево ; // Можно заменить на вызов Отладка = Команда.Опция("f force", Ложь ,"Описание опция");
Пример опции:
Отладка = Команда.Опция("v debug", ложь ,"Описание опции") .Флаговый() // тип опции булево .ВОкружении("ИМЯ_ПЕРЕМЕННОЙ") .ПоУмолчанию(Ложь) .СкрытьВСправке(); // Любой тип
Возможна передача нескольких переменных окружения разделенных через пробел
Пример опции:
ЦветКонсоли = Команда.Опция("c color", "green" ,"Описание опции") .ТПеречисление() // тип опции перечисление .Перечисление("green", Новый ЗеленыйЦвет(), "Консоль будет зеленого цвета") .Перечисление("red", Цвета.Красный, "Консоль будет красного цвета") .Перечисление("Случайный", СлучайныйЦвет(), "Консоль будет случайного цвета") ;
Перечисление ограничивает пользователя в выборе значения опции, при этом разработчик для каждой опции может задавать свой тип значения
Подробное описание возможностей параметров команд и приложения
Парсим опциональные параметры с click
Как вы, возможно, догадались, тестовый API ограничивает нас в возможностях. Поэтому, прежде чем мы продолжим, зарегистрируйтесь и получите настоящий API-ключ.
Первое, что нам нужно изменить, — URL, откуда берутся данные о текущей погоде. Это можно сделать, изменив значение переменной в функции на URL, указанный в документации OpenWeatherMap:
Это изменение приведёт к неработоспособности нашего CLI, так как указанный API-ключ не работает с реальным API. Поэтому давайте добавим новый параметр в наш CLI, который позволит нам указывать API-ключ. Но сначала мы должны решить, будет ли этот параметр аргументом или опцией. Мы сделаем его опцией, так как добавление параметра вроде делает его более явным и говорящим за себя.
Мы хотим, чтобы наша программа запускалась таким образом:
Проще простого. Посмотрим, как добавить опцию к нашей существующей команде:
И снова мы добавляем декоратор к нашей функции . В этот раз мы используем декоратор с говорящим именем и указываем имя для нашей опции, начинающееся с двух тире. Как вы видите, мы также можем указать сокращение для нашей опции с одним тире, чтобы сэкономить пользователю немного времени.
Как было сказано ранее, click создаёт аргумент для передачи в функцию из длинного варианта имени. В случае с опцией он убирает впередистоящие тире и переводит её в snake case. Таким образом, становится .
Чтобы всё заработало, осталось лишь передать API-ключ в функцию .
Мы добавили возможность указывать свой собственный ключ и проверять погоду в любом месте:
— Настройка сетевого интерфейса через графический интерфейс [GUI]
Первым делом нам нужно попасть в «Центр управления сетями и общим доступом».
Первый способ: Заходим в «Панель управления» -> «Центр управления сетями и общим доступом».(Рис.1.1)
Рис.1.1 — «Панель управления» — «Центр управления сетями и общим доступом».
Второй способ: через «Выполнить»:
Заходим в «Выполнить» -> Вводим команду приведённую ниже и жмём — «OK».(Рис.1.2)
control.exe /name Microsoft.NetworkandSharingCenter
Рис.1.2 — Запуск «Центра управления сетями и общим доступом» через «Выполнить».
И так, перед нами «Центр управления сетями и общим доступом». В разделе «Просмотр активных сетей» мы видим сети, к которым подключен наш ПК…
На данный момент мой ПК подключен к одной сети. Для того чтобы перейти к параметрам соединения, в строке «Подключение:» нажмите на тип подключения, в моём случае это «Ethernet» При подключении по Wi-FI надпись будет — «Беспроводное сетевое соединение (название сети)»(Рис.1.3)
Рис.1.3 — Центр управления сетями и общим доступом.
Откроется окно — «Состояние — Ethernet», показывающее состояние подключения к сети. Нас интересует кнопка «Свойства», нажимаем её -> открывается окно «Ethernet: свойства» в списке компонентов выбираем «IP версии 4 (TCP/IPv4)» и опять же жмём кнопку «Свойства».(Рис.1.4)
Откроется окно — «Свойства: IP версии 4 (TCP/IPv4)», оно то нам и нужно.(Рис.1.5)
Рис.1.4 — «Состояние — Ethernet» и «Ethernet: свойства».
1.1. — GUI — Получение динамического IP-адреса
Перед нами окно — «Свойства: IP версии 4 (TCP/IPv4)».(Рис.1.5)
Для того чтобы получить динамические автоматически по DHCP] настройки сети, а именно — IP-адрес, Маску подсети, Основной шлюз и DNS-серверы, нужно переключить радиокнопки в положения:
- Получить IP-адрес, автоматически
- Получить адрес DNS-сервера автоматически
В окне «Свойства: IP версии 4 (TCP/IPv4)» нажимаем «ОК».
Рис.1.5 — Положения радиокнопок для получения сетевых настроек автоматически.
В окне «Ethernet: свойства» тоже нажимаем «ОК».(Рис.1.6)
Рис.1.6 — «Ethernet: свойства».
Перед нами окно «Состояние — Ethernet» -> нажимаем кнопку «Сведения…» -> откроется окно «Сведения о сетевом подключении», в котором мы можем посмотреть настройки сети.(Рис.1.7)
И так мы видим:
- DHCP включен: Да
- Адрес IPv4: 10.0.0.50
- Маска подсети IPv4: 255.255.255.0
- Шлюз по умолчанию IP: 10.0.0.1
- DHCP-сервер IPv4: 10.0.0.1
- DNS-серверы IPv4: 8.8.8.8, 8.8.4.4
Настройки по DHCP получены, всё правильно, на этом с получением динамических сетевых настроек заканчиваем.
Рис.1.7 — Просматриваем настройки сети полученные по DHCP.
1.2. — GUI — Задать/Изменить статический IP-адрес
Статические настройки сети задаются вручную пользователем. Они прописываются в настройках сетевого подключения и жестко закрепляется за данным устройством.
В этом разделе, для моего ПК я пропишу статический IP-адрес — 10.0.0.10
Перед нами окно — «Свойства: IP версии 4 (TCP/IPv4)».(Рис.1.8)
Для того чтобы задать/изменить статические настройки сети , нужно переключить радиокнопки в положения:
- Использовать следующий IP-адрес
- Использовать следующие адреса DNS-серверов
И ввожу:
- IP-адрес: 10.0.0.10
- Маска подсети: 255.255.255.0
- Основной шлюз: 10.0.0.1
- Предпочитаемый DNS-сервер: 10.0.0.1
- Альтернативный DNS-сервер: оставляю пустым
Для сохранения нажимаем «ОК».
Рис.1.8 — Вводим сетевые настройки вручную.
В окне «Ethernet: свойства» тоже нажимаем «ОК».(Рис.1.9)
Рис.1.9 — «Ethernet: свойства».
Перед нами окно «Состояние — Ethernet»(Рис.1.10) -> нажимаем кнопку «Сведения…» откроется окно «Сведения о сетевом подключении», в котором мы можем посмотреть настройки сети.
И так мы видим:
- DHCP включен: Нет
- Адрес IPv4: 10.0.0.10
- Маска подсети IPv4: 255.255.255.0
- Шлюз по умолчанию IP: 10.0.0.1
- DNS-серверы IPv4: 10.0.0.1
Нужные нам сетевые настройки применились. Всё отлично.
Рис.1.10 — Просматриваем настройки сети введенные вручную.
На этом с настройкой сети через графический интерфейс[GUI заканчиваем.
Аргументы
Аргументы могут быть следующих простых типов:
- Булево
- Строка
- Число
- Дата
Для простых типов поддерживается определение типа по значение по умолчанию. Пример,
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента") .ТСтрока() // тип опции Строка ; // Можно заменить на вызов Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента");
Также аргументы могут принимать массивы данных типов, например:
- МассивЧисел
- МассивСтрок
- МассивДат
- Перечисление (см. пример опций)
Пример аргумента:
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента") .ТСтрока() // тип опции Строка .ВОкружении("ИМЯ_ПЕРЕМЕННОЙ") .ПоУмолчанию(Ложь) .СкрытьВСправке(); // Любой тип
Возможна передача нескольких переменных окружения разделенных через пробел
Подробное описание возможностей параметров команд и приложения
Применение
Основные сферы применения интерфейса командной строки:
- операционные системы
- чаты
- компьютерные игры
В операционных системах
Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки POSIX и его модификация в рамках GNU.
В компьютерных играх
Изначально консоль в играх использовалась для отладки.
Tremulous: Игрок готовится сменить команду
Как только появился интерфейс командной строки, стали появляться и игры, его использующие, особенно актуально это было на тех платформах, где более сложные интерфейсы (графические) было невозможно реализовать вследствие аппаратных ограничений.
Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.
Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню неудобно. Первая такая игра — Quake. Стандартная кнопка для вызова консоли — ~ (тильда); реже ↵ Enter‘, ещё реже ⇧ Shift+D . Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator. Консоль позволяет в числе прочего вводить чит-коды.
Также консоль предоставляет возможность изменять настройки назначения горячих клавиш, что может использоваться для обмана соперника в многопользовательских играх, например, предложением ввести команду , отменяющую все горячие клавиши, в том числе и отвечающие за движение игрока.
Интерфейс, который предоставляется моддерам, не всегда позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (карте для игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.
В других программах
-
САПР
AutoCAD
-
текстовые редакторы
Vim
-
Браузеры
Vimperator — расширение для браузера Firefox, позволяющее управлять им, как редактором Vim
- различные клиенты IRC
Добавляем автоматически генерируемые инструкции по использованию
Можете себя похвалить, вы создали отличный небольшой CLI почти без шаблонного кода. Однако прежде чем вы решите отдохнуть, давайте убедимся, что новый пользователь будет знать, как пользоваться нашим CLI, путём добавления документации. Не бойтесь, всё будет просто.
Сначала давайте проверим, что выведет флаг после всех сделанных изменений. Довольно неплохо, учитывая что мы не приложили к этому никаких усилий:
Первое, что нужно исправить, это добавить описание для нашей опции с API-ключом. Всё, что нам для этого нужно сделать, – добавить справочный текст в декоратор :
Второе (и последнее), что мы сделаем, — добавим документацию для всей click-команды. Самый простой и самый питонический способ сделать это — добавить строку документации в нашу функцию . Да, нам в любом случае нужно сделать это, поэтому это не лишняя работа:
Сложив всё вместе, мы получаем хороший вывод для нашего инструмента:
Недостатки
- Интерфейс командной строки не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического режима, из-за почти отсутствующих возможностей обнаружения (англ. discoverabililty).
- Необходимость изучения синтаксиса команд и запоминания сокращений, осложняющаяся тем, что каждая команда может иметь свои собственные обозначения.
- Без автодополнения, ввод длинных и содержащих спецсимволы параметров с клавиатуры может быть затруднительным.
- Отсутствие «аналогового» ввода. Например подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем командой вроде . (Однако, озвученный ползунок вполне может быть псевдографическим, что реализовано в большинстве консольных плееров).
Назначение
На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:
- Небольшой расход памяти по сравнению с системой меню.
- В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.
- Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что приведет к такому же (в большинстве случаев) эффекту, как если бы эти команды были по очереди введены в командную строку. Примеры — .bat-файлы в DOS и Windows, shell-скрипты в Unix-системах.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Горячие клавиши для управления командной строкой
Данным средством удобнее управлять с помощью комбинаций кнопок, отдельных клавиш на компьютерной клавиатуре. Есть несколько вариантов:
- «Ctrl + C» копирует выделенный текст;
- «Ctrl + V» вставляет скопированные ранее символы в нужную строку;
- «Ctrl + стрелка вправо или влево». Такое сочетание позволяет перемещать мигающий курсор в начало следующего слова или в конец предыдущего;
- «Ctrl + A» выделяет все набранные ранее символы;
- кнопка «Home». Нажав данную клавишу, можно передвинуть курсор в начало или конец строчки, где он стоит;
- «F3» ещё раз вставляет предыдущую команду в нужное место, при этом пользователю не придётся копировать символы;
- «Alt + F7» очищает всю историю вводимых ранее команд;
- «Alt + Enter» изменяет текущий размер окна средства. Может развернуть утилиту на весь экран либо свернуть её;
- «Shift + End» выделяет строку от места расположения курсора до конца;
- «Alt + F4». Выполнив такую комбинацию клавиш на клавиатуре ПК, пользователь сможет закрыть средство ввода команд без сохранения.
Обратите внимание! После ввода некоторых команд в системное средство может потребоваться перезагрузка компьютера для активации той или иной функции. Любое изменение в работе ОС можно отменить, воспользовавшись стандартной утилитой восстановления системы
Внешний вид окна локальной групповой политики на Windows 10
Достоинства и недостатки[править]
Достоинства:
- Любую команду можно вызвать небольшим количеством нажатий.
- Пакетные файлы — это, по сути, простейшая программируемость.
- Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).
- Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
Недостатки:
- Интерфейс командной строки не является дружественным для начинающих.
- Искать неизвестную команду по справочникам не менее сложно, чем отыскивать в меню нужную команду.
- Ввод некоторых параметров с клавиатуры может быть затруднительным. Например, игроки часто украшают свои имена цифрами и спецсимволами, и ввести команду наподобие без дополнительных средств бывает довольно сложно. А подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем из командной строки.
- Если же в программе должен быть полноценный скриптовый язык, приходится либо поддерживать два разных языка (консольный и скриптовый), либо отказываться от командной строки в пользу скриптового языка, либо совмещать эти два языка (что отрицательно сказывается на удобстве программирования).
Строка использования приложения (спек)
Синтаксис спек базируется на POSIX. Спек является грамматикой парсера аргументов и определяет порядок следования аргументов и опций в командной строке, а также вариативность параметров. Спек формируется либо вручную через указание в поле , либо автоматически в момент вызова выполнения приложения / или команды.
Опции
Для определения опций можно использовать длинные и короткие имена опций:
Команда.Спек = "-f";
И/или:
Команда.Спек = "--force";
Пример добавления аргументов в команду:
Команд.Опция("f force", ...);
Аргументы
Правила наименования аргументов, имя должно содержать только символы в верхнем регистре:
Пример, использования аргументов в определении строки использования приложения
Команда.Спек="SRC DST"
Пример добавления аргументов в команду:
Команда.Аргумент("SRC", ...); Команда.Аргумент("DST", ...);
Сортировка строки использования
cli позволяет произвольно настраивать порядок использования опций и аргументов:
Команда.Спек = "-f -g NAME -h PATH";
В примере выше задана грамматика: в командой строке могут идти сначала опции -f и -g, затем аргумент NAME, затем опция -h, затем аргумент PATH.
Основы интерфейса командной строки
Интерфейс командной строки (CLI) начинается с имени исполняемого файла. Вы вводите имя в консоль и получаете доступ к главной точке входа скрипта, такого как pip.
В зависимости от сложности CLI обычно есть определённые параметры, которые вы можете передавать скрипту:
- Аргумент, который является обязательным параметром. Если его не передать, то CLI вернёт ошибку. Например, в следующей команде click является аргументом: .
- Опция – необязательный параметр, который объединяет имя и значение, например . Вы говорите CLI, что значение должно использоваться как директория для кэша.
- Флаг, который включает или выключает определённый сценарий. Вероятно, самым частым является . Вы только указываете имя, а CLI самостоятельно интерпретирует значение.
С более сложными CLI, такими как pip или Heroku CLI, вы получаете доступ к набору функций, которые собраны под главной точкой входа. Они обычно называются командами или подкомандами.
Возможно, вы уже использовали CLI, когда устанавливали Python-библиотеку с помощью команды . Команда говорит CLI, что вы хотите использовать функцию установки пакета, и даёт вам доступ к параметрам, характерным для этой функции.
Формат команды
Наиболее общий формат команд (в квадратные скобки помещены необязательные части):
Символ начала команды может быть самым разным, однако чаще всего для этой цели используется косая черта (). Если строка вводится без этого символа, выполняется некоторая базовая команда: например, строка «Привет» в IRC эквивалентна вводу «». Если же такой базовой команды нет, символ начала команды отсутствует вообще (как, например, в DOS).
Параметры команд могут иметь самый разный формат. В основном применяются следующие правила:
- параметры разделяются пробелами (и отделяются от названия команды пробелом)
- параметры, содержащие пробелы, обрамляются кавычками-апострофами () или двойными кавычками ()
- если параметр используется для обозначения включения какой-либо опции, выключенной по умолчанию, он начинается с косой черты () или дефиса ()
- если параметр используется для включения/выключения какой-либо опции, он начинается (или заканчивается) знаком плюс или минус (для включения и выключения соответственно)
- если параметр указывает действие из группы действий, назначенных команде, он не начинается со специальных символов
- если параметр указывает объект, к которому применяется действие команды, он не начинается со специальных символов
- если параметр указывает дополнительный параметр какой-либо опции, то он имеет формат (вместо косой черты также может употребляться дефис)
Например, в некоей абстрактной игре может быть такая команда:
- — символ начала команды
- — название команды (переход на другой уровень)
- — обязательный параметр (название уровня)
- — дополнительный параметр (задание уровня сложности)
Назначение
На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:
- Небольшой расход памяти по сравнению с системой меню.
- В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.
- Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что приведет к такому же (в большинстве случаев) эффекту, как если бы эти команды были по очереди введены в командную строку. Примеры — .bat-файлы в DOS и Windows, shell-скрипты в Unix-системах.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Применение
Основные сферы применения интерфейса командной строки:
- операционные системы
- чаты
- компьютерные игры
В операционных системах
Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки POSIX и его модификация в рамках GNU.
В компьютерных играх
Изначально консоль в играх использовалась для отладки.
Tremulous: Игрок готовится сменить команду
Как только появился интерфейс командной строки, стали появляться и игры, его использующие, особенно актуально это было на тех платформах, где более сложные интерфейсы (графические) было невозможно реализовать вследствие аппаратных ограничений.
Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.
Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню неудобно. Первая такая игра — Quake. Стандартная кнопка для вызова консоли — ~ (тильда); реже ↵ Enter‘, ещё реже ⇧ Shift+D . Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator. Консоль позволяет в числе прочего вводить чит-коды.
Также консоль предоставляет возможность изменять настройки назначения горячих клавиш, что может использоваться для обмана соперника в многопользовательских играх, например, предложением ввести команду , отменяющую все горячие клавиши, в том числе и отвечающие за движение игрока.
Интерфейс, который предоставляется моддерам, не всегда позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (карте для игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.
В других программах
-
САПР
AutoCAD
-
текстовые редакторы
Vim
-
Браузеры
Vimperator — расширение для браузера Firefox, позволяющее управлять им, как редактором Vim
- различные клиенты IRC
Команды командной строки.
Каждая команда командной строки представляет собой консольную программу. Помимо простых программ, позволяющих просматривать информацию о системе или выполнять операции с файлами и папками, есть довольно мощные утилиты для управления настройками операционной системы.
В командной строке Windows есть справочная информация по каждой программе, в которой описан синтаксис использования программы, праметры и аргументы, с которыми она работает.
Посмотреть справку по использованию команды можно используя следующий синтаксис.
Например справка по команде COPY будет выглядеть так.
Операции с файлами и папками.
COPY — копирование файлов в другое местоDEL или ERACE — удаление файловEDIT — запуск редактора файловEDLIN — построчный текстовый редакторEXPAND — распаковка сжатых файловFC — сравнить файлы и вывести различия между нимиFIND — найти в файле текстовую строкуMD или MAKEDIR — создать папкуMOVE — переместить файлы из одной папки в другуюPRINT — вывести содержимое текстового файла на печатьRD или RMDIR — удалить папкуREN или RENAME — переименовать файл или папкуREPLACE — заменить файлы одного каталога файлами с аналогичным названием из другого каталога (заместить)ROBOCOPY — запустить улучшенное средство копирования файлов и каталоговTREE — показать структуру каталогов диска или папкиTYPE — вывести содержимое текстовых файлов на экранXCOPY — копировать файлы и деревья каталогов
Работа с дисками.
CHKDISK — проверить диск и вывести статистикуCHKNTFS — отобразить или изменить выполнение проверки диска при загрузкеCOMPACT — отобразить и изменить сжатие файлов в разделах NTFSCONVERT — преобразовать дисковый том FAT в NTFSDISKPART — отобразить и настроить свойства раздела дискаFORMAT — форматировать дискFSUTIL — отобразить и настроить свойства файловой системыLABEL — создать, изменить или удалить метку тома дискаRECOVER — восстановить данные с плохого или поврежденного дискаVOL — вывести метку и серийный номер тома для диска
Управление приложениями и процессами.
SCHTASKS — выполнить команду или запустить приложение по расписанию (планировщик задач)SHUTDOWN — выключить или перезагрузить компьютерTASKLIST — список выполняемых задачTASKKILL — прекратить или остановить задачу (для остановки используется PID, который можно узнать при помощи TASKLIST)RUNAS — запуск задачи от имени другого пользователя
Информация о системе.
DATE — вывести или установить текущую датуTIME — вывести и установить системное времяDRIVERQUERY — отобразить текущее состояние и свойства драйвера устройстваHOSTNAME — имя компьютераSYSTEMINFO — информация о конфигурации компьютераVER — сведения о версии Windows
Просмотр и настройка сетевых параметров.
IPCONFIG — просмотр сведений о сетевых интерфейсахPING — проверка сетевого соединенияTRACERT — определяет путь прохождения пакетов по сетиNSLOOKUP — определяет ip-адрес по имени ресурсаROUTE — работа с таблицами сетевых маршрутовARP — таблица преобразований ip-адресов в физическиеNETSH — программа управления сетевыми настройкамиGETMAC — показывает MAC-адрес сетевого адаптера
Настройка и управление командной строкой.
CLS — очистить экранCMD — запустить еще одну командную строкуCOLOR — установить цвет текста и фонаPROMPT — изменить приглашение в командной строкеTITLE — назначить заголовок окна для текущего сеансаEXIT — выход из командной строки
Достоинства
- Легкость автоматизации. Shell script в UNIX-подобных системах является полноценным интерпретируемым языком программирования и способен автоматизировать любую системную задачу. В Windows присутствует их примитивный аналог — пакетные файлы, и более мощный аналог — powershell. По сути, это — простейшая программируемость. С графическим интерфейсом без поддержки программой командной строки это сделать почти невозможно.
- Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).
- Любую команду можно вызвать небольшим количеством нажатий.
- Можно обращаться к командам для разных исполнимых файлов почти мгновенно и непосредственно, тогда как в GUI приходится сначала запускать, а затем закрывать графический интерфейс для каждого исполнимого файла.
- Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
- Можно пользоваться удаленным компьютером с любого устройства подключаемого к Интернету или локальной сети (ПК, субноутбук, КПК, сотовый телефон, портативная игровая консоль) без особых затрат трафика (единицы килобайт за сеанс).
- Отсутствие деталей интерфейса, таких как пусковые панели и рамки окон, что при равных разрешениях позволяет вместить значительно больше текста на страницу.
- Возможность работы через стандартизированные линии передачи данных, такие как RXD, TXD в RS232, на небольшой скорости (наиболее часто 9600 бод), делает этот интерфейс основным, а порой и единственно возможным, для встраиваемых систем, систем с небольшой вычислительной мощностью, иных недорогих и экономичных устройств. Принтеры, жёсткие диски, роутеры, датчики пожарной охраны — лишь малая часть примеров такого оборудования.
- Легче отладка сообществом. Если пользователь столкнулся с проблемой или ошибкой, на интернет-форуме достаточно оставить копию диалога пользователя и ЭВМ. Такой листинг имеет однозначное толкование (в том числе по порядку ввода и появления сообщений), в отличие от графического интерфейса, когда нужно не только отправить копию экрана, и порой не одну (что уже само по себе может быть проблемно), но также и входящие данные (какую «галочку» и где нажать, и тому подобное). К тому же, копия экрана одной и той же программы может существовать на разных языках, что усложнит отладку международным сообществом.
Локальный сервер
Для запуска сервера достаточно в корне приложения запустить команду
она проанализирует доступные SAPI на используемой машине и выберет лучший вариант из существующих, пользуясь следующими приоритетами: на первом месте PHP FPM, дальше PHP CGI и в конце PHP CLI. Список доступных SAPI можно посмотреть командой:
После этого команда запустит сервер, который будет доступен по адресу и подберёт свободный порт начиная с .
По умолчанию сервер запускается в интерактивном режиме. Мы сразу видим логи сервера и приложения, но наш терминал заблокирован. Сервер можно запустить в режиме демона. Для этого нужно добавить опцию при запуске команды .
Логи можно будет посмотреть, запустив команду:
также можно посмотреть статус запущеного сервера используя команду:
чтобы остановить запущенный сервер используется команда:
UPD: Раньше для запуска сервера мы использовали пакет symfony/web-server-bundle. С появлением Symfony CLI этот пакет становится не очень актуальным, так как он умеет только запускать сервер, используя PHP CLI SAPI и не поддерживает HTTPS, доменные имена, PHP FPM SAPI и прочее.
Зачем вам писать скрипты и инструменты для командной строки на Python?
Код выше – всего лишь пример, не очень полезный в реальной жизни. На самом деле скрипты бывают куда более сложные
Возможно, вы имели опыт с ними и знаете, что они могут быть важной частью нашей повседневной работы: некоторые скрипты остаются на протяжении всего времени жизни проекта, для которого они были написаны. Некоторые начинают приносить пользу другим командам или проектам
У них даже может расширяться функционал.
В этих случаях важно сделать скрипты более гибкими и настраиваемыми с помощью параметров командной строки. Они позволяют указать имя сервера, учётные данные или любую другую информацию скрипту
Здесь приходят на выручку такие модули, как optparse и argparse, которые делают нашу жизнь на порядок проще. Но прежде чем мы с ними познакомимся, давайте разберёмся с терминологией.
GPL Code
Назначение
На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:
- Небольшой расход памяти по сравнению с системой меню.
- В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.
- Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что приведет к такому же (в большинстве случаев) эффекту, как если бы эти команды были по очереди введены в командную строку. Примеры — .bat-файлы в DOS и Windows, shell-скрипты в Unix-системах.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Примеры использования
С помощью командной строки можно решать много разных задач — от управления сервером до поиска файлов. Но вся мощь проявляется в случаях, когда нам нужно сделать много однотипных операций.
Представим такую ситуацию: мы скачали 30 подкастов, которые хотим послушать в дороге. Но после скачивания выяснилось, что громкость у всех записей очень тихая, и даже если выкрутить всё на максимум, её всё равно не хватает. Чтобы послушать подкасты, нам придётся:
- запустить аудиоредактор,
- по очереди открыть в нём каждый файл,
- вручную установить нужный уровень громкости,
- сохранить файл,
- открыть следующий и повторить всё то же самое,
- повторить ещё 28 раз
Очевидно, что это займёт много времени, и проще скачать другие подкасты, чем тратить столько сил на эти. Но, например, в MacOS мы можем открыть терминал и написать там две команды:
cd podcasts
for file in *; do wc -l $file; lame —scale 8 $file; done
Первая команда переходит в каталог с подкастами, а вторая:
- берёт все файлы в этой папке;
- получает их количество и название;
- в цикле запускает программу lame и указывает параметры для неё — поднять громкость в 8 раз у этого файла;
- повторяет цикл до тех пор, пока не обработаются все файлы.
В результате мы в той же папке получим те же файлы, но с увеличенной громкостью. По времени это будет гораздо быстрее, чем делать всё вручную. Но для этого нужно знать возможности командной строки, уметь с ней работать, знать команды и их параметры.
Вот что ещё можно делать через командную строку:
- следить за нагрузкой на процессор;
- настраивать автообновления программ;
- делать резервные копии по расписанию;
- генерировать тексты с помощью нейронки и результат сразу публиковать в телеграм-канале;
- собирать почту со всех ящиков, фильтровать только важные письма, собирать их в одно, красиво его оформить и распечатать на принтере;
- и что угодно ещё, если для этого есть команда или параметр вызова.