Інтерфейс командного рядка

Сюди перенаправляється запит " Інтерпретатор командного рядка ". На цю тему потрібна окрема стаття .
Зовнішній вигляд оболонки bash

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

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

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


1. Призначення

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

  • Невеликий витрата пам'яті в порівнянні з системою меню.
  • У сучасному програмному забезпеченні є велика кількість команд, багато з яких потрібні вкрай рідко. Тому навіть в деяких програмах з графічним інтерфейсом застосовується командний рядок: набір команди (за умови, що користувач знає цю команду) здійснюється набагато швидше, ніж, наприклад, навігація по меню.
  • Природне розширення інтерфейсу командного рядка - пакетний інтерфейс. Його суть у тому, що у файл звичайного текстового формату записується послідовність команд, після чого цей файл можна виконати в програмі, що здобуде такий же (не менший) ефект, як якщо б ці команди були по черзі введені в командний рядок. Приклади - . Bat -файли в DOS і Windows, shell -скрипти в Unix-системах.

Якщо програма повністю або майже повністю може управлятися командами інтерфейсу командного рядка та підтримує пакетний інтерфейс, уміле поєднання інтерфейсу командного рядка з графічним надає користувачеві дуже потужні можливості.


2. Формат команди

Найбільш загальний формат команд (в квадратні дужки поміщені необов'язкові частини):

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

Символ початку команди може бути самим різним, проте найчастіше для цієї мети використовується коса риска ( /). Якщо рядок вводиться без цього символу, виконується деяка базова команда: наприклад, рядок "Привіт" в IRC еквівалентна введенню " /msg Привет ". Якщо ж такої базової команди немає, символ початку команди відсутня взагалі (як, наприклад, в DOS).

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

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

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

/map dm1 /skill:2
  • / - символ початку команди
  • map - назва команди (перехід на інший рівень)
  • dm1 - обов'язковий параметр (назву рівня)
  • /skill:2 - додатковий параметр (завдання рівня складності)

3. Застосування

Основні сфери застосування інтерфейсу командного рядка:

3.1. В операційних системах

Основне застосування інтерфейсу командного рядка - інтерфейс операційної системи. В Windows мову командного рядка не має чіткої стандартизації, однак існує стандарт командного рядка POSIX і його модифікація в рамках GNU.

3.2. У комп'ютерних іграх

Спочатку консоль в іграх використовувалася для налагодження.

Tremulous : Гравець готується змінити команду

Як тільки з'явився інтерфейс командного рядка, стали з'являтися і гри, його використовують, особливо актуально це було на тих платформах, де більш складні інтерфейси (графічні) було неможливо реалізувати внаслідок апаратних обмежень.

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

У багатьох графічних іграх присутній консоль для полегшення доступу до налаштувань гри, оскільки в складних іграх реалізувати всі команди через систему меню незручно. Перша така гра - Quake. Стандартна кнопка для виклику консолі - ~ ( тильда); рідше Enter '. Консоль дозволяє вносити зміни в налаштування гри оперативніше, ніж меню - наприклад, набрати name Terminator швидше, ніж знайти те меню, в якому вводиться ім'я гравця, і ввести Terminator.

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

Інтерфейс, який надається моддерам, не завжди дозволяє міняти меню; але він завжди дозволяє додавати свої консольні команди. Наприклад, в DotA (карті для гри Warcraft III) режим гри задає учасник, який грає синіми, через консоль.


3.3. В інших програмах

4. Переваги

  • Легкість автоматизації. Shell script в UNIX-подібних системах є повноцінним інтерпретується мовою програмування і здатний автоматизувати будь-яку системну задачу. В Windows присутня їх примітивний аналог - пакетні файли, і більш потужний аналог - powershell. По суті, це - найпростіша програмованість. З графічним інтерфейсом без підтримки програмою командного рядка це зробити майже неможливо.
  • Можна керувати програмами, які не мають графічного інтерфейсу (наприклад, виділеним сервером).
  • Будь-яку команду можна викликати невеликою кількістю натискань.
  • Можна звертатися до команд для різних здійснимих файлів майже миттєво і безпосередньо, тоді як в GUI доводиться спочатку запускати, а потім закривати графічний інтерфейс для кожного виконуваного файлу.
  • Переглянувши вміст консолі, можна повторно побачити промайнуло повідомлення, яке ви не встигли прочитати.
  • Можна користуватися віддаленим комп'ютером з будь-якого пристрою що підключається до Інтернету або локальної мережі ( ПК, субноутбук, КПК, стільниковий телефон, портативна ігрова консоль) без особливих витрат трафіку (одиниці кілобайт за сеанс).
  • Відсутність деталей інтерфейсу, таких як пускові панелі і рамки вікон, що при рівних дозволах дозволяє вмістити значно більше тексту на сторінку.

5. Недоліки

  • Інтерфейс командного рядка не є "доброзичливим" для користувачів, які почали знайомство з комп'ютером з графічного режиму.
  • Без автодоповнення, введення довгих і містять спецсимволи параметрів з клавіатури може бути складним.
  • Відсутність "аналогового" введення. Наприклад підбір гучності за допомогою озвученого повзунка дозволяє виставити відповідну гучність швидше, ніж командою начебто aumix -v 90. (Однак, озвучений повзунок цілком може бути псевдографічні, що було виконано в більшості консольних плеєрів).

Примітки

  1. Howto: FreeBSD configure or use mouse to copy and paste at a terminal - www.cyberciti.biz/faq/howto-freebsd-use-mouse-to-copy-and-paste-at-a-terminal/