Текстовий інтерфейс користувача

Bash - приклад консольної програми
Приклад віконного текстового інтерфейсу

Текстовий користувальницький інтерфейс, ТПИ ( англ. Text user interface, TUI ; Також Character User Interface, CUI ) - Різновид інтерфейсу користувача, що використовує при введенні-виведенні і поданні інформації виключно набір буквено-цифрових символів і символів псевдографіки. Характеризується малою вимогливістю до ресурсів апаратури введення-виведення (зокрема, пам'яті) і високою швидкістю відображення інформації, тому широко використовувався на початковому етапі розвитку обчислювальної техніки. Також, його різновид - інтерфейс командного рядка - має окремі переваги в юзабіліті перед графічним інтерфейсом. Тому програми, засновані на ТПИ, мають деяке поширення до теперішнього часу, особливо в специфічних сферах і на малопотужному обладнанні.

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

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

ТПИ, що використовує як елементів інтерфейсу тільки і виключно вводяться з клавіатури текстові рядки (команди), називається інтерфейсом командного рядка (т. зв. консольні програми - програми, що використовують інтерфейс командного рядка, де інформація виводиться на консоль).


Особливості текстового інтерфейсу

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

У текстовому інтерфейсі реалізовані всі базові елементи інтерфейсу, використовувані і в графічному інтерфейсі - меню, кнопки, перемикачі, прапорці, що випадають списки, смуги прокрутки і так далі. Багато програм реалізовували розвинену віконну систему, чому сприяли бібліотеки начебто CScape, D-Flat, Turbo Vision і багато інших, деякі мали змінні теми оформлення (наприклад, DOS Navigator) і підтримували різні пристрої інтерактивної взаємодії, такі як миша, джойстик, світлове перо.

На програмному рівні для введення і виведення інформації консольні програми використовують стандартні пристрої введення-виведення ( stdin, stdout, stderr), хоча можуть відкривати та інші файли, мережеві з'єднання та вчиняти інші дії, що перебувають у виконує їх середовищі. Висновок друкованих символів в stdout і stderr призводить до появи цих символів на пристрої виводу і до отримання їх користувачем.

Консольні програми для більш просунутих операційних систем, особливо UNIX, як правило, здатні працювати на досить широкому класі реалізацій інтерфейсу з користувачем. Для спрощення написання таких програм широко застосовується бібліотека ncurses.


Реалізація текстового інтерфейсу

Консольна програма не зобов'язана піклуватися про реалізацію самого взаємодії з користувачем, обмежуючись введенням-виведенням на стандартні пристрої, використанням бібліотек типу ncurses чи інших програмних інтерфейсів. Власне взаємодія з користувачем зазвичай здійснює операційна система або інше програмне забезпечення.

Класичною реалізацією текстового інтерфейсу, висхідній до першої половини XX століття, є алфавітно-цифровий пристрій введення-виведення, наприклад, комплект з клавіатури і АЦПУ ( телетайпа). Згодом замість АЦДП стали застосовувати монітори, забезпечені Знакогенератор, що дозволило швидко і зручно організовувати діалог з користувачем. Подібними пристроями забезпечений або може бути забезпечений майже кожен сучасний комп'ютер. Такі комплекти з монітора і клавіатури (іноді з додаванням миші) називаються консоллю комп'ютера.

Відповідно до традиції використання консольними програмами клавіатури і АЦПУ для введення і виведення відповідно взаємодія таких програм з користувачем звелося до читання з stdin і висновку на stdout. Таким чином, з'явилася можливість перенаправляти потоки введення-виведення, здійснюючи взаємодія з користувачем за допомогою інших пристроїв, у тому числі підключених через мережа, а також за допомогою спеціальних програм - емуляторів терміналу, наприклад, що малюють вікно з текстом в графічному інтерфейсі користувача (текстове вікно).

У 1970-х роки і пізніше випускалися навіть спеціальні пристрої, що реалізують текстовий інтерфейс - текстові термінали, що підключаються через послідовний порт до комп'ютера напряму або через модем. З поширенням персональних комп'ютерів функції текстового терміналу, як правило, виконує комп'ютер, той, на якому виконується консольна програма, або інший. Програми Telnet і ssh дозволяють користувачеві взаємодіяти з консольної програмою, запущеної на віддаленому комп'ютері (як правило, під керуванням UNIX), через Інтернет або локальну мережу. Програми xterm, rxvt, konsole і багато інших реалізують текстовий інтерфейс за допомогою текстового вікна в середовищі X Window System.

Альтернативний підхід до консольного висновку був використаний в персональних комп'ютерах, зокрема (хоча не тільки), IBM PC під управлінням DOS. Програма може не тільки виводити дані через stdout, але і прямо змінювати вміст певній галузі пам'яті, пов'язаної зі знакогенератора монітора, приводячи до негайного зміни видимих ​​на моніторі даних. Такі програми можуть також працювати в середовищі Microsoft Windows. Більше того, Windows має підтримку текстових вікон, багато в чому перевершує наявну в DOS, в тому числі і для додатків власне Windows.

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

У POSIX -сумісних системах, таких як UNIX та Linux, робота користувача з терміналом здійснюється за допомогою особливої ​​підсистеми, званої TTY-абстракцією.


Приклади консольних програм

  • Будь-яка програма, яка отримує дані шляхом читання stdin і відправку даних шляхом запису в stdout, за визначенням є консольної програмою. Однак, такі програми можуть обходитися і без користувача, оскільки stdin і stdout можуть бути пов'язані не з інтерактивними пристроями (клавіатурою і монітором), а з файлами.
  • Текстові програми для DOS, які здійснюють висновок у відеопам'ять EGA / VGA. Подібні програми працюють також і в середовищі Microsoft Windows.
  • Unix shell, а також всі утиліти, призначені для роботи в цьому середовищі.

Деякі програми з ТПИ можуть працювати і в консольному режимі:


Перегляд цього шаблону Елементи графічного інтерфейсу
Управління

Кнопка Меню (рядок меню контекстне меню радіальне меню)

Введення / висновок

Кнопка послідовного вибору Двонаправлений лічильник Список, що випадає Комбінований список Прапорець Повзунок Радіокнопка Список Таблиця (Grid view) Текстове поле

Відображення

Heads-up display ( в іграх OSD) Бічна панель Заставка Значок Індикатор процесу Інформаційна панель Мітка Підказка Рядок стану Тост Троббер Екран завантаження

Контейнери

Ribbon Приховуваний віджет Фрейм Панель Вкладка Панель інструментів Вікно

Навігація
Спеціальні вікна

Діалогове вікно Діалогове вікно-попередження Модальне вікно Про програму Вікно інспектора об'єктів Вікно-палітра Файловий діалог

Ігрові
Пов'язані поняття

WIMP Бібліотека елементів інтерфейсу Зовнішній вигляд (Look and feel) Менеджер розмітки (Layout manager) Наведення миші