Что такое терминал
Терминал — устройство, через которое человек разговаривает с машиной текстом: клавиатура, экран и линия связи между ними. Так он и появился — как железо.
Название осталось в системе до сих пор: tty — сокращение от teletypewriter, телетайп. Это была печатающая машинка, соединённая с компьютером: набираешь строку — машина отвечает напечатанной строкой. Потом на смену пришли видеотерминалы с экраном (классический пример — VT100), но принцип не изменился: устройство ввода-вывода на проводе, а вся работа происходит в машине.
Отсюда становится понятно, почему программу в современном окне называют эмулятором терминала: она изображает то железо. gnome-terminal, konsole, xterm — это программы, которые делают вид, что они и есть терминал: принимают нажатия, рисуют текст, отвечают управляющими последовательностями.
Что осталось от железа в системе
| Что | Смысл |
|---|---|
/dev/tty |
Текущий терминал процесса, чем бы он ни был |
/dev/tty1 … /dev/tty6 |
Виртуальные консоли: тот самый «чёрный экран» на Ctrl+Alt+F3 |
/dev/pts/0, /dev/pts/1 |
Псевдотерминалы: пары устройств, которыми пользуются эмуляторы, ssh, tmux |
TERM |
Имя «типа терминала»: какая программа его изображает и что она умеет |
terminfo |
База описаний: что можно этому терминалу отправлять |
stty |
Настройки терминала прямо сейчас: размер, режим, спецсимволы |
Проверить, что у вас на самом деле:
$ tty # /dev/pts/0 — или «не телетайп», если терминала нет
$ echo "$TERM" # xterm-256color
$ stty size # 24 80 — строки и столбцы
$ infocmp -1 | head # из чего состоит описание вашего терминала
Терминал, псевдотерминал, консоль
Три слова, которые часто говорят как синонимы, а означают разное.
Консоль — терминал, подключённый прямо к машине: то, что видно на Ctrl+Alt+F1…F6. В системе это tty1, tty2 и далее.
Терминал — шире: и консоль, и удалённый терминал, и окно-эмулятор.
Псевдотерминал (pty) — программная пара устройств: одна сторона притворяется терминалом для программы, другая — каналом связи для того, кто её обслуживает (эмулятор, ssh, tmux). Имя устройства — /dev/pts/N. Именно поэтому одна и та же программа в окне терминала и в скрипте ведёт себя по-разному: в окне она получает псевдотерминал, а в скрипте — ничего.
$ man 4 pts # как устроены псевдотерминалы
$ script -qc 'tty' /dev/null # выделить псевдотерминал «на лету» и посмотреть
/dev/pts/2
Зачем это знать
Три практические вещи вырастают прямо из истории:
- Почему в скриптах не работают прогресс-бары и цвета. Многие программы смотрят, есть ли терминал, и без него включают «простой» режим. Отсюда же и
TERM=dumb. - Почему
sshбез-tне даёт интерактивной программы. Псевдотерминал не запрашивается, и программа считает, что её вывод никто не смотрит. - Почему в конфигах встречается
TERM=vt100. Это совместимость: притвориться древним терминалом, который «умеет мало», проще, чем описать современный.
Источники
man 4 tty,man 4 pts— устройства терминалов и псевдотерминалы.man 5 terminfo— описания терминалов и переменнаяTERM.man 1 tty,man 1 stty,man 1 script,man 3 isatty— проверка и настройка терминала.- Выводы команд
tty,stty size,script -qc— с рабочей системы (Linux, ядро 6.x; команды проверены 19.10.2026).
Что ещё не проверено
- Историческая часть (телетайпы, VT100, когда именно появились псевдотерминалы) написана по общеизвестной истории вычислительной техники; первоисточник я не привожу, потому что под рукой его нет — и не хочу выдавать пересказ за ссылку. Точно проверено здесь другое: как терминал выглядит в системе сегодня — это видно из
man-страниц и живых команд. - Числа вида
24 80вstty size— размер вашего окна, а не константа: он меняется вместе с окном.
Комментарии
Пока комментариев нет.