Интерфейс командной строки







Внешний вид оболочки bash в GNOME Terminal 3, Fedora 15


Интерфейс командной строки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши[1]. Также известен под названием консоль.


Интерфейс командной строки противопоставляется системам управления программой на основе меню, а также различным реализациям графического интерфейса.


Формат вывода информации в интерфейсе командной строки не регламентируется; обычно это также простой текстовый вывод, но может быть и графическим, звуковым и т. д.




Содержание






  • 1 Назначение


  • 2 Формат команды


  • 3 Применение


    • 3.1 В операционных системах


    • 3.2 В компьютерных играх


    • 3.3 В других программах




  • 4 Достоинства


  • 5 Недостатки


  • 6 См. также


  • 7 Примечания





Назначение |


На устройстве-консоли, которое печатало текст на бумаге, интерфейс командной строки был единственным возможным. На видеотерминалах интерфейс командной строки применяется по таким причинам:



  • Небольшой расход памяти по сравнению с системой меню.

  • В современном программном обеспечении имеется большое число команд, многие из которых нужны крайне редко. Поэтому даже в некоторых программах с графическим интерфейсом применяется командная строка: набор команды (при условии, что пользователь знает эту команду) осуществляется гораздо быстрее, чем, например, навигация по меню.

  • Естественное расширение интерфейса командной строки — пакетный интерфейс. Его суть в том, что в файл обычного текстового формата записывается последовательность команд, после чего этот файл можно выполнить в программе, что приведет к такому же (в большинстве случаев) эффекту, как если бы эти команды были по очереди введены в командную строку. Примеры — .bat-файлы в DOS и Windows, shell-скрипты в Unix-системах.


Если программа полностью или почти полностью может управляться командами интерфейса командной строки и поддерживает пакетный интерфейс, умелое сочетание интерфейса командной строки с графическим предоставляет пользователю очень мощные возможности.



Формат команды |


Наиболее общий формат команд (в квадратные скобки помещены необязательные части):


[символ_начала_команды]имя_команды [параметр_1 [параметр_2 […]]]

Символ начала команды может быть самым разным, однако чаще всего для этой цели используется косая черта (/). Если строка вводится без этого символа, выполняется некоторая базовая команда: например, строка «Привет» в IRC эквивалентна вводу «/msg Привет». Если же такой базовой команды нет, символ начала команды отсутствует вообще (как, например, в DOS).


Параметры команд могут иметь самый разный формат. В основном применяются следующие правила:



  • параметры разделяются пробелами (и отделяются от названия команды пробелом)

  • параметры, содержащие пробелы, обрамляются кавычками-апострофами (') или двойными кавычками (")

  • если параметр используется для обозначения включения какой-либо опции, выключенной по умолчанию, он начинается с косой черты (/) или дефиса (-)

  • если параметр используется для включения/выключения какой-либо опции, он начинается (или заканчивается) знаком плюс или минус (для включения и выключения соответственно)

  • если параметр указывает действие из группы действий, назначенных команде, он не начинается со специальных символов

  • если параметр указывает объект, к которому применяется действие команды, он не начинается со специальных символов

  • если параметр указывает дополнительный параметр какой-либо опции, то он имеет формат /опция:дополнительный_параметр (вместо косой черты также может употребляться дефис)


Например, в некоей абстрактной игре может быть такая команда:


/map dm1 /skill:2



  • / — символ начала команды


  • map — название команды (переход на другой уровень)


  • dm1 — обязательный параметр (название уровня)


  • /skill:2 — дополнительный параметр (задание уровня сложности)



Применение |


Основные сферы применения интерфейса командной строки:



  • операционные системы

  • чаты

  • компьютерные игры



В операционных системах |



Основное применение интерфейса командной строки — интерфейс операционной системы. В Windows язык командной строки не имеет чёткой стандартизации, однако существует стандарт командной строки POSIX и его модификация в рамках GNU.



В компьютерных играх |


Изначально консоль в играх использовалась для отладки.





Tremulous: Игрок готовится сменить команду


Как только появился интерфейс командной строки, стали появляться и игры, его использующие, особенно актуально это было на тех платформах, где более сложные интерфейсы (графические) было невозможно реализовать вследствие аппаратных ограничений.


Наиболее ярким примером игр, использующих интерфейс командной строки, могут быть названы текстовые квесты, а также сетевые многопользовательские ролевые игры — MUD. Команды в таких играх вводятся на так называемом псевдоестественном языке.


Во многих графических играх присутствует консоль для облегчения доступа к настройкам игры, поскольку в сложных играх реализовать все команды через систему меню неудобно. Первая такая игра — Quake. Стандартная кнопка для вызова консоли — ~ (тильда); реже ↵ Enter', ещё реже ⇧ Shift+D . Консоль позволяет вносить изменения в настройки игры оперативнее, чем меню — например, набрать name Terminator быстрее, чем найти то меню, в котором вводится имя игрока, и ввести Terminator. Консоль позволяет в числе прочего вводить чит-коды.


Также консоль предоставляет возможность изменять настройки назначения горячих клавиш, что может использоваться для обмана соперника в многопользовательских играх, например, предложением ввести команду unbindall, отменяющую все горячие клавиши, в том числе и отвечающие за движение игрока.


Интерфейс, который предоставляется моддерам, не всегда позволяет менять меню; но он всегда позволяет добавлять свои консольные команды. Например, в DotA (карте для игры Warcraft III) режим игры задаёт участник, играющий синими, через консоль.



В других программах |




  • САПР
    • AutoCAD



  • текстовые редакторы
    • Vim



  • Браузеры

    • Vimperator — расширение для браузера Firefox, позволяющее управлять им, как редактором Vim


  • различные клиенты IRC



Достоинства |



  • Легкость автоматизации. Shell script в UNIX-подобных системах является полноценным интерпретируемым языком программирования и способен автоматизировать любую системную задачу. В Windows присутствует их примитивный аналог — пакетные файлы, и более мощный аналог — powershell. По сути, это — простейшая программируемость. С графическим интерфейсом без поддержки программой командной строки это сделать почти невозможно.

  • Можно управлять программами, не имеющими графического интерфейса (например, выделенным сервером).

  • Любую команду можно вызвать небольшим количеством нажатий.

  • Можно обращаться к командам для разных исполнимых файлов почти мгновенно и непосредственно, тогда как в GUI приходится сначала запускать, а затем закрывать графический интерфейс для каждого исполнимого файла.

  • Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.

  • Можно пользоваться удаленным компьютером с любого устройства подключаемого к Интернету или локальной сети (ПК, субноутбук, КПК, сотовый телефон, портативная игровая консоль) без особых затрат трафика (единицы килобайт за сеанс).

  • Отсутствие деталей интерфейса, таких как пусковые панели и рамки окон, что при равных разрешениях позволяет вместить значительно больше текста на страницу.

  • Возможность работы через стандартизированные линии передачи данных, такие как RXD, TXD в RS232, на небольшой скорости (наиболее часто 9600 бод), делает этот интерфейс основным, а порой и единственно возможным, для встраиваемых систем, систем с небольшой вычислительной мощностью, иных недорогих и экономичных устройств. Принтеры, жёсткие диски, роутеры, датчики пожарной охраны — лишь малая часть примеров такого оборудования.

  • Легче отладка сообществом. Если пользователь столкнулся с проблемой или ошибкой, на интернет-форуме достаточно оставить копию диалога пользователя и ЭВМ. Такой листинг имеет однозначное толкование (в том числе по порядку ввода и появления сообщений), в отличие от графического интерфейса, когда нужно не только отправить копию экрана, и порой не одну (что уже само по себе может быть проблемно), но также и входящие данные (какую «галочку» и где нажать, и тому подобное). К тому же, копия экрана одной и той же программы может существовать на разных языках, что усложнит отладку международным сообществом.

  • Поскольку данный стандарт существует десятки лет без особых изменений, можно быть уверенным, что не только личный опыт, но и руководства, опыт сообщества, и другие наработки по работе с командной строкой, будут востребованы и полезны ещё длительное время, не придётся переучиваться и тратить время на адаптацию к новым возможностям либо искать замену внезапно исключённым функциям, работа останется доведённой до автоматизма - что особенно важно в профессиональной среде.



Недостатки |



  • Интерфейс командной строки не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического режима, из-за почти отсутствующих возможностей обнаружения (англ. discoverabililty).[2]

  • Необходимость изучения синтаксиса команд и запоминания сокращений, осложняющаяся тем, что каждая команда может иметь свои собственные обозначения.[2]

  • Без автодополнения, ввод длинных и содержащих спецсимволы параметров с клавиатуры может быть затруднительным.

  • Отсутствие «аналогового» ввода. Например подбор громкости с помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем командой вроде aumix -v 90. (Однако, озвученный ползунок вполне может быть псевдографическим, что реализовано в большинстве консольных плееров).



См. также |



  • bash

  • Cmd.exe

  • Графический интерфейс пользователя



Примечания |





  1. Howto: FreeBSD configure or use mouse to copy and paste at a terminal


  2. 12 Max Steenbergen, Command Lines: Alive & Kicking, Article No. 575 November 4, 2010, UX Magazine





Popular posts from this blog

Сан-Квентин

8-я гвардейская общевойсковая армия

Алькесар