Интерфейс командной строки (англ. Command line interface, CLI) — способ взаимодействия между человеком и компьютером путём отправки компьютеру команд, представляющих собой последовательность символов. Команды интерпретируются с помощью специального интерпретатора, называемого оболочкой. Интерфейс командной строки противопоставляется системам управления программой на основе меню, а также различным реализациям графического интерфейса.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Назначение
На телетайпе интерфейс командной строки был единственным возможным[источник не указан 670 дней]. На видеотерминалах интерфейс командной строки может применяться по следующим причинам[источник не указан 1377 дней]:
- Более скромные требования к ресурсам по сравнению с другими видами интерфейсов.
- При большом наборе возможных команд опытные пользователи могут работать с приложением быстрее, чем с системой меню.
- Интерфейс командной строки может быть естественно расширен до пакетного интерфейса, а команды стать частью сценарного языка. Выполнение сценария (скрипта) подобно вводу команд по очереди в командную строку. Примеры — .bat-файлы в DOS и Windows, shell-скрипты в Unix-системах.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Формат команды
Наиболее общий формат команд (в квадратные скобки помещены необязательные части):
[символ_начала_команды]имя_команды [параметр_1 [параметр_2 […]]]
Символ начала команды может быть самым разным, однако чаще всего для этой цели используется косая черта (/
). Если строка вводится без этого символа, выполняется некоторая базовая команда: например, строка «Привет» в IRC эквивалентна вводу «/msg Привет
». Если же такой базовой команды нет, символ начала команды отсутствует вообще (как, например, в DOS).
Параметры команд могут иметь самый разный формат. В основном применяются следующие правила:
- параметры разделяются пробелами (и отделяются от названия команды пробелом)
- параметры, содержащие пробелы, обрамляются кавычками-апострофами (
'
) или двойными кавычками ("
) - если параметр используется для обозначения включения какой-либо опции, выключенной по умолчанию, он начинается с косой черты (
/
) или дефиса (-
) - если параметр используется для включения/выключения какой-либо опции, он начинается (или заканчивается) знаком плюс или минус (для включения и выключения соответственно)
- если параметр указывает действие из группы действий, назначенных команде, он не начинается со специальных символов
- если параметр указывает объект, к которому применяется действие команды, он не начинается со специальных символов
- если параметр указывает дополнительный параметр какой-либо опции, то он имеет формат
/опция:дополнительный_параметр
(вместо косой черты также может употребляться дефис)
Например, в некоей абстрактной игре может быть такая команда:
/map dm1 /skill:2
/
— символ начала командыmap
— название команды (переход на другой уровень)dm1
— обязательный параметр (название уровня)/skill:2
— дополнительный параметр (задание уровня сложности)
Сравнение с графическими пользовательскими интерфейсами
Преимущества. По сравнению с графическим пользовательским интерфейсом интерфейс командной строки требует меньше системных ресурсов для работы. Поскольку параметры команд задаются в нескольких символах в каждой командной строке, опытный пользователь может часто находить эти параметры в более доступном режиме. Автоматизация повторяющихся задач упрощается благодаря редактированию строк и истории для хранения часто используемых последовательностей; это может распространяться на язык сценариев, который может принимать параметры переменных и постоянных. Можно сохранить историю командной строки, что позволяет просматривать или повторять команды.
Недостатки. Интерфейс системы командной строки может потребовать бумажных или онлайн-руководств для справки пользователя, хотя часто параметр «help» или «?» обеспечивает краткий обзор параметров команды. Среда командной строки может не предоставлять графические улучшения, такие как различные шрифты или расширенные окна редактирования, которые предусмотрены в графическом интерфейсе. По сравнению с выпадающими контекстными меню графического интерфейса новому пользователю может быть сложно ознакомиться со всеми доступными строковыми командами и параметрами, а потом использовать их без повторной ссылки на руководства.
Применение
Основные сферы применения интерфейса командной строки:
В операционных системах
Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки POSIX и его модификация в рамках GNU.
В компьютерных играх
Изначально консоль в играх использовалась для отладки.
Как только появился интерфейс командной строки, стали появляться и игры, его использующие, особенно актуально это было на тех платформах, где более сложные интерфейсы (графические) было невозможно реализовать вследствие аппаратных ограничений.
Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.[2]
Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню неудобно. Первая такая игра — Quake. Стандартная кнопка для вызова консоли — ~ (тильда); реже ↵ Enter, ещё реже ⇧ Shift+D . Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать name Terminator
быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator. Консоль позволяет в числе прочего вводить чит-коды.
Также консоль предоставляет возможность изменять настройки назначения горячих клавиш, что может использоваться для обмана соперника в многопользовательских играх, например, предложением ввести команду unbindall
, отменяющую все горячие клавиши, в том числе и отвечающие за движение игрока.
Интерфейс, который предоставляется моддерам, не всегда позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (карте для игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.
В других программах
- САПР
- текстовые редакторы
- Браузеры
- Vimperator — расширение для браузера Firefox, позволяющее управлять им, как редактором Vim
- различные клиенты IRC
- Asterisk
Достоинства
- Легкость автоматизации. Shell script в UNIX-подобных системах является полноценным интерпретируемым языком программирования и способен автоматизировать любую системную задачу. В Windows присутствует их примитивный аналог — пакетные файлы, и более мощный аналог — powershell. По сути, это — простейшая программируемость. С графическим интерфейсом без поддержки программой командной строки это сделать почти невозможно.
- Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).
- Любую команду можно вызвать небольшим количеством нажатий.
- Можно обращаться к командам для разных исполнимых файлов почти мгновенно и непосредственно, тогда как в GUI приходится сначала запускать, а затем закрывать графический интерфейс для каждого исполнимого файла.
- Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
- Можно пользоваться удаленным компьютером с любого устройства подключаемого к Интернету или локальной сети (ПК, субноутбук, КПК, сотовый телефон, портативная игровая консоль) без особых затрат трафика (единицы килобайт за сеанс).
- Отсутствие деталей интерфейса, таких как пусковые панели и рамки окон, что при равных разрешениях позволяет вместить значительно больше текста на страницу.
- Возможность работы через стандартизированные линии передачи данных, такие как RXD, TXD в RS232, на небольшой скорости (наиболее часто 9600 бод), делает этот интерфейс основным, а порой и единственно возможным, для встраиваемых систем, систем с небольшой вычислительной мощностью, иных недорогих и экономичных устройств. Принтеры, жёсткие диски, роутеры, датчики пожарной охраны — лишь малая часть примеров такого оборудования.
- Легче отладка сообществом. Если пользователь столкнулся с проблемой или ошибкой, на интернет-форуме достаточно оставить копию диалога пользователя и ЭВМ. Такой листинг имеет однозначное толкование (в том числе по порядку ввода и появления сообщений), в отличие от графического интерфейса, когда нужно не только отправить копию экрана, и порой не одну (что уже само по себе может быть проблемно), но также и входящие данные (какую «галочку» и где нажать, и тому подобное). К тому же, копия экрана одной и той же программы может существовать на разных языках, что усложнит отладку международным сообществом.
- Поскольку данный стандарт существует десятки лет без особых изменений, можно быть уверенным, что не только личный опыт, но и руководства, опыт сообщества, и другие наработки по работе с командной строкой, будут востребованы и полезны ещё длительное время, не придётся переучиваться и тратить время на адаптацию к новым возможностям либо искать замену внезапно исключённым функциям, работа останется доведённой до автоматизма - что особенно важно в профессиональной среде.[3]
Недостатки
- Интерфейс командной строки не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического режима, из-за почти отсутствующих возможностей интуитивного обнаружения (англ. discoverabililty).[4]
- Необходимость изучения синтаксиса команд и запоминания сокращений, осложняющаяся тем, что каждая команда может иметь свои собственные обозначения.[4]
- Без автодополнения, ввод длинных и содержащих спецсимволы параметров с клавиатуры может быть затруднительным.
- Отсутствие «аналогового» ввода. Например подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем командой вроде
aumix -v 90
. (Однако, озвученный ползунок вполне может быть псевдографическим, что реализовано в большинстве консольных плееров).
См. также
Примечания
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.