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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Командная строка»)
Перейти к навигации Перейти к поиску
Внешний вид оболочкиbashвGNOME Terminal 3,Fedora 15

Интерфейс командной строки(англ.Command line interface, CLI) — способ взаимодействия между человеком и компьютером путём отправки компьютеру команд, представляющих собой последовательность символов. Команды интерпретируются с помощью специального интерпретатора, называемогооболочкой.Интерфейс командной строки противопоставляется системам управления программой на основеменю,а также различным реализациямграфического интерфейса.

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

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

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

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

[править|править код]

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

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

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

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

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

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

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

Сравнение с графическими пользовательскими интерфейсами

[править|править код]

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

Недостатки.Интерфейс системы командной строки может потребовать бумажных или онлайн-руководств для справки пользователя, хотя часто параметр «help» или «?» обеспечивает краткий обзор параметров команды. Среда командной строки может не предоставлять графические улучшения, такие как различные шрифты или расширенные окна редактирования, которые предусмотрены в графическом интерфейсе. По сравнению с выпадающими контекстными меню графического интерфейса новому пользователю может быть сложно ознакомиться со всеми доступными строковыми командами и параметрами, а потом использовать их без повторной ссылки на руководства.

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

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

[править|править код]

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

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

[править|править код]

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

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

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

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

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

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

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

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

[править|править код]
КонсольAsterisk

Достоинства

[править|править код]
  • Легкость автоматизации.Shell scriptв UNIX-подобных системах является полноценным интерпретируемым языком программирования и способен автоматизировать любую системную задачу. ВWindowsприсутствует их примитивный аналог —пакетные файлы,и более мощный аналог —powershell.По сути, это — простейшаяпрограммируемость.С графическим интерфейсом без поддержки программой командной строки это сделать почти невозможно.
  • Можно управлять программами, не имеющимиграфического интерфейса(например,выделенным сервером).
  • Любую команду можно вызвать небольшим количеством нажатий.
  • Можно обращаться к командам для разных исполнимых файлов почти мгновенно и непосредственно, тогда как в GUI приходится сначала запускать, а затем закрывать графический интерфейс для каждого исполнимого файла.
  • Просмотрев содержимое консоли, можно повторно увидеть промелькнувшее сообщение, которое вы не успели прочитать.
  • Можно пользоваться удаленным компьютером с любого устройства подключаемого к Интернету или локальной сети (ПК,субноутбук,КПК,сотовый телефон, портативнаяигровая консоль) без особых затрат трафика (единицы килобайт за сеанс).
  • Отсутствие деталей интерфейса, таких как пусковые панели и рамки окон, что при равных разрешениях позволяет вместить значительно больше текста на страницу.
  • Возможность работы через стандартизированные линии передачи данных, такие как RXD, TXD вRS232,на небольшой скорости (наиболее часто 9600бод), делает этот интерфейс основным, а порой и единственно возможным, для встраиваемых систем, систем с небольшой вычислительной мощностью, иных недорогих и экономичных устройств. Принтеры, жёсткие диски, роутеры, датчики пожарной охраны — лишь малая часть примеров такого оборудования.
  • Легче отладка сообществом. Если пользователь столкнулся с проблемой или ошибкой, на интернет-форуме достаточно оставить копию диалога пользователя и ЭВМ. Такой листинг имеет однозначное толкование (в том числе по порядку ввода и появления сообщений), в отличие от графического интерфейса, когда нужно не только отправить копию экрана, и порой не одну (что уже само по себе может быть проблемно), но также и входящие данные (какую «галочку» и где нажать, и тому подобное). К тому же,копия экранаодной и той же программы может существовать на разных языках, что усложнит отладку международным сообществом.
  • Поскольку данный стандарт существует десятки лет без особых изменений, можно быть уверенным, что не только личный опыт, но и руководства, опыт сообщества, и другие наработки по работе с командной строкой, будут востребованы и полезны ещё длительное время, не придётся переучиваться и тратить время на адаптацию к новым возможностям либо искать замену внезапно исключённым функциям, работа останется доведённой до автоматизма - что особенно важно в профессиональной среде.[3]
  • Интерфейс командной строки не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического режима, из-за почти отсутствующих возможностей интуитивного обнаружения (англ.discoverabililty).[4]
  • Необходимость изучения синтаксиса команд и запоминания сокращений, осложняющаяся тем, что каждая команда может иметь свои собственные обозначения.[4]
  • Безавтодополнения,ввод длинных и содержащих спецсимволы параметров с клавиатуры может быть затруднительным.
  • Отсутствие «аналогового» ввода. Например подборгромкостис помощью озвученного ползунка позволяет выставить подходящую громкость быстрее, чем командой вродеaumix -v 90.(Однако, озвученный ползунок вполне может быть псевдографическим, что реализовано в большинстве консольных плееров).
  1. Командный интерфейс пользователя, интерфейс командной строки.mognovse.ru.Дата обращения: 8 января 2021.Архивировано9 августа 2020 года.
  2. В операционных системах. В компьютерных играх.Bstudy.net.Дата обращения: 8 января 2021.
  3. Pivovarko.Информатика. Информация и ее свойства.: Пользовательский интерфейс.Информатика. Информация и ее свойства.(7 февраля 2013). Дата обращения: 8 января 2021.Архивировано9 января 2021 года.
  4. 12Max Steenbergen, Command Lines: Alive & Kicking, Article No. 575 November 4, 2010, UX Magazine.Дата обращения: 27 октября 2013.Архивировано29 октября 2013 года.