Interested Article - Текстовый интерфейс пользователя

Bash — пример консольной программы

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

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

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

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

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

Особенности текстового интерфейса

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

В текстовом интерфейсе могут быть реализованы все базовые элементы интерфейса, используемые и в графическом интерфейсе — меню , кнопки , переключатели , флажки, выпадающие списки , полосы прокрутки и так далее. Многие программы реализовывали развитую оконную систему, чему способствовали библиотеки вроде , , 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 , а также все утилиты , предназначенные для работы в этой среде.

Некоторые программы с ТПИ могут работать и в консольном режиме:

Источник —

Same as Текстовый интерфейс пользователя