console(4) консольный терминал и виртуальные консоли

ОПИСАНИЕ

Операционная система Linux поддерживает до 63 виртуальных консолей (символьные устройства со старшим номером 4 и младшим номером от 1 до 63), обычно именуемых /dev/ttyn с 1 ≤ n ≤ 63. Текущая консоль также доступна по имени /dev/console или /dev/tty0 (символьное устройство со старшим номером 4 и младшим номером 0). Файлы устройств в /dev/* обычно создаются с помощью сценария MAKEDEV или программы mknod(1), имеют права доступа 0622 и принадлежат root.tty.

До появления ядра версии 11.54 количество виртуальных консолей было встроено в ядро (в tty.h: #define NR_CONSOLES 8) и могло быть изменено только редактированием файла и пересборкой. Начиная с версии 1.1.54 виртуальные консоли создаются «налету», как только понадобятся.

Распространённые способы запуска процесса в консоли: (а) указать init(1) (в inittab(5)) запускать mingetty(8) (или agetty(8)) в консоли; (б) указать openvt(1) запускать процесс в консоли; (в) запустить X — это вызовет поиск первой неиспользованной консоли и весь вывод будет виден в ней (также есть старинный doshell(8)).

Распространённые способы переключения между консолями: (а) использовать Alt+Fn или Ctrl+Alt+Fn для переключения на консоль n; AltGr+Fn поможет перейти на консоль n+12 (здесь Alt и AltGr означают левую и правую клавиши Alt, соответственно); (б) использовать Alt+RightArrow или Alt+LeftArrow для перемещения на следующую имеющуюся консоль по кругу; (в) с помощью программы chvt(1). (Клавиатурную раскладку можно изменить, см. loadkeys(1); упомянутые выше комбинации клавиш настроены по умолчанию.)

Команда deallocvt(1) (бывшая disalloc) освободит память, выделенную под буферы экрана для консолей, которые больше не используются ни одним процессом.

Свойства

У консолей есть много состояний. Надеемся, что когда-нибудь они будут описаны. Наиболее важно то, что консоли моделируют поведение терминалов vt100. В частности, консоль сбрасывается в первоначальное состояние по нажатию двух клавиш ESC c. Все управляющие последовательности можно найти в console_codes(4).

ФАЙЛЫ

/dev/console
/dev/tty*