Интерпретатор командной строки | это... Что такое Интерпретатор командной строки? (original) (raw)
Внешний вид оболочки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются только путём ввода с клавиатуры текстовых строк (команд). Также известен под названием консоль.
Интерфейс командной строки противопоставляется системам управления программой на основе меню, а также различным реализациям графического интерфейса.
Формат вывода информации в интерфейсе командной строки не регламентируется; обычно это также простой текстовый вывод, но может быть и графическим, звуковым и т. д.
Содержание
Назначение
На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:
- Небольшой расход памяти по сравнению с системой меню.
- В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.
- Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что возымеет такой же (не меньший) эффект, как если бы эти команды были по очереди введены в командную строку. Примеры — bat-файлы в Windows, shell-скрипты в Unix-системах.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Формат команды
Наиболее общий формат команд (в квадратные скобки помещены необязательные части):
**[символ_начала_команды]имя_команды [параметр_1 [параметр_2 […]]]**
Символ начала команды может быть самым разным, однако чаще всего для этой цели используется косая черта (/
). Если строка вводится без этого символа, выполняется некоторая базовая команда: например, строка «**Привет**
» в /msg Привет». Если же такой базовой команды нет, символ начала команды отсутствует вообще (как, например, в
параметры разделяются пробелами (и отделяются от названия команды пробелом) параметры, содержащие пробелы, обрамляются кавычками-апострофами (') или двойными кавычками (") если параметр используется для обозначения включения какой-либо опции, выключенной по умолчанию, он начинается с косой черты (/) или дефиса (-) если параметр используется для включения/выключения какой-либо опции, он начинается (или заканчивается) знаком плюс или минус (для включения и выключения соответственно) если параметр указывает действие из группы действий, назначенных команде, он не начинается со специальных символов если параметр указывает объект, к которому применяется действие команды, он не начинается со специальных символов если параметр указывает дополнительный параметр какой-либо опции, то он имеет формат /опция:дополнительный_параметр (вместо косой черты также может употребляться дефис) Например, в некоей абстрактной игре может быть такая команда: /map dm1 /skill:2 / — символ начала команды map — название команды (переход на другой уровень) dm1 — обязательный параметр (название уровня) /skill:2 — дополнительный параметр (задание уровня сложности)
Применение
Основные сферы применения интерфейса командной строки:
В операционных системах
Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки GNU (см. командная оболочка UNIX).
В компьютерных играх
Изначально консоль в играх использовалась для отладки.
Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.
Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню неудобно. Первая такая игра — ~» (тильда); реже Enter. Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать name Terminator
быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator.
Также консоль предоставляет возможность изменять настройки назначения горячих клавиш, что может использоваться для обмана соперника в многопользовательских играх, например предложением ввести команду unbindall
, отменяющую все горячие клавиши, в том числе и отвечающие за движение игрока.
Интерфейс, который предоставляется моддерам, не всегда позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (карте для игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.
В других программах
- Vim
- различные клиенты
Достоинства и недостатки
Достоинства:
- Любую команду можно вызвать небольшим количеством нажатий.
- Пакетные файлы — это, по сути, простейшая программируемость.
- Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).
- Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
Недостатки: - Интерфейс командной строки не является дружественным для пользователей, которые начали знакомство с компьютером с графического режима.
- Искать неизвестную команду по справочникам не менее сложно, чем отыскивать в меню нужную команду.
- Ввод некоторых параметров с клавиатуры может быть затруднительным. Подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем из командной строки.
- Если же в программе должен быть полноценный скриптовый язык, приходится либо поддерживать два разных языка (консольный и скриптовый), либо отказываться от командной строки в пользу скриптового языка, либо совмещать эти два языка (что отрицательно сказывается на удобстве программирования).