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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

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

Інтерфейс командного рядка (англ. command-line interface, CLI) — різновид текстового інтерфейсу користувача і комп'ютера, в якому інструкції комп'ютера даються тільки шляхом введення з клавіатури текстових рядків (команд). Також відомий під назвою консоль. Інтерфейс командного рядка може бути протиставлений системам управління програмою на основі меню, а також різних реалізацій графічного інтерфейсу. Формат виводу інформації в інтерфейсі командного рядка не регламентується; звичайно це простий текстовий вивід, але може бути і графічним, звуковим виводом тощо.

Призначення


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

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

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


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

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

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

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

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

Наприклад, у деякій грі може бути така команда: / map dm1 / skill: 2

 де:
   / — Символ початку команди
   Map — назва команди (перехід на інший рівень)
   Dm1 — обов'язковий параметр (назва рівня)
   / Skill: 2 — додатковий параметр (завдання рівня складності)

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


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

  • Операційні системи
  • Чати
  • Комп'ютерні ігри

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

Основне застосування інтерфейсу командного рядка — інтерфейс операційної системи. У Windows мова командного рядка не має чіткої стандартизації, однак існує стандарт командного рядка POSIX і його модифікація в рамках GNU (див. командна оболонка UNIX).

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

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

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

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

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

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

  • AutoCAD
  • Vim
  • Emacs
  • Різні клієнти IRC

Переваги та недоліки


Переваги:

  • Будь-яку команду можна викликати невеликою кількістю натискань.
  • Пакетні файли — це, по суті, найпростіша програмованість.
  • Можна керувати програмами, що не мають графічного інтерфейсу (наприклад, виділеним сервером).
  • Переглянувши вміст консолі, можна повторно побачити повідомлення, яке ви не встигли прочитати.

Недоліки:

  • Інтерфейс командного рядка не є дружнім для початківців.
  • Шукати невідому команду з довідників не менш складно, ніж відшукувати в меню потрібну команду.
  • Введення деяких параметрів з клавіатури може бути важким. Наприклад, гравці часто прикрашають свої імена цифрами і спецсимволами, і ввести команду на кшталт kick =- CooL-= [H3LL] без додаткових коштів буває досить складно. А підбір гучності за допомогою озвученого повзунка дозволяє виставити потрібну гучність швидше, ніж з командного рядка.
  • Якщо ж у програмі є повноцінна скриптова мова, доводиться або підтримувати дві різних мови (консольну і скриптову), або відмовлятися від командного рядка на користь скриптової мови, або поєднувати ці дві мови (що негативно позначається на зручності програмування).