Командная строка
Интерфейс командной строки — разновидность текстового интерфейса человека и компьютера, в котором инструкции компьютеру даются только путём ввода с клавиатуры текстовых строк (команд). Также известен под названием консоль.
Интерфейс командной строки противопоставляется системам управления программой на основе меню, а также различным реализациям графического интерфейса.
Формат вывода информации в интерфейсе командной строки не регламентируется; обычно это также простой текстовый вывод, но может быть и графическим, звуковым и т.д.
Назначение[править | править код]
На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:
- Небольшой расход памяти по сравнению с системой меню.
- В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.
- Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что возымеет такой же (не меньший) эффект, как если бы эти команды были по очереди введены в командную строку.
Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.
Формат команды[править | править код]
Наиболее общий формат команд (в квадратные скобки помещены необязательные части):
- [символ_начала_команды]имя_команды [параметр_1 [параметр_2 […]]]
Символ начала команды может быть самым разным, однако чаще всего для этой цели используется косая черта (/
). Если строка вводится без этого символа, выполняется некоторая базовая команда: например, строка «Привет
» в IRC эквивалентна вводу «/msg Привет
». Если же такой базовой команды нет, символ начала команды отсутствует вообще (как, например, в DOS).
Параметры команд могут иметь самый разный формат. В основном применяются следующие правила:
- параметры разделяются пробелами (и отделяются от названия команды пробелом)
- параметры, содержащие пробелы, обрамляются кавычками-апострофами (
'
) или двойными кавычками ("
) - если параметр используется для обозначения включения какой-либо опции, выключенной по умолчанию, он начинается с косой черты (
/
) или дефиса (-
) - если параметр используется для включения/выключения какой-либо опции, он начинается (или заканчивается) знаком плюс или минус (для включения и выключения соответственно)
- если параметр указывает действие из группы действий, назначенных команде, он не начинается со специальных символов
- если параметр указывает объект, к которому применяется действие команды, он не начинается со специальных символов
- если параметр указывает дополнительный параметр какой-либо опции, то он имеет формат /опция:дополнительный_параметр (вместо косой черты также может употребляться дефис)
Например, в некоей абстрактной игре может быть такая команда:
/map dm1 /skill:2
/
— символ начала командыmap
— название команды (переход на другой уровень)dm1
— обязательный параметр (название уровня)/skill:2
— дополнительный параметр (задание уровня сложности)
Применение[править | править код]
Основные сферы применения интерфейса командной строки:
В операционных системах[править | править код]
Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки POSIX и его модификация в рамках GNU (см. командная оболочка UNIX).
В компьютерных играх[править | править код]
Как только появился интерфейс командной строки, стали появляться и игры, его использующие, особенно актуально это было на тех платформах, где более сложные интерфейсы (графические) было невозможно реализовать вследствие аппаратных ограничений.
Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.
Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню оконно-графического интерфейса неудобно. Первая такая игра — Quake. Стандартная кнопка для вызова консоли — «~» (тильда). Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать name Terminator
быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator. Также не всегда интерфейс, который предоставляется моддерам, позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (моде игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.
В других программах[править | править код]
Достоинства и недостатки[править | править код]
Достоинства:
- Любую команду можно вызвать небольшим количеством нажатий.
- Пакетные файлы — это, по сути, простейшая программируемость.
- Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).
- Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
Недостатки:
- Интерфейс командной строки не является дружественным для начинающих.
- Искать неизвестную команду по справочникам не менее сложно, чем отыскивать в меню нужную команду.
- Ввод некоторых параметров с клавиатуры может быть затруднительным. Например, игроки часто украшают свои имена цифрами и спецсимволами, и ввести команду наподобие
kick =-CooL-= [H3LL]
без дополнительных средств бывает довольно сложно. А подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем из командной строки. - Если же в программе должен быть полноценный скриптовый язык, приходится либо поддерживать два разных языка (консольный и скриптовый), либо отказываться от командной строки в пользу скриптового языка, либо совмещать эти два языка (что отрицательно сказывается на удобстве программирования).