Все /dev/tty*
записи являются чем-то известным device file
в соответствии с философией Unix. Они служат связующим звеном между пользователем и фактическим устройством, но их назначение может немного отличаться.
Виртуальные консоли
Файлы устройств, такие как, /dev/tty123
могут использоваться для взаимодействия с системой через обычную оболочку. Это виртуальные терминалы. Система Ubuntu настроена на открытие по умолчанию TTY с 1 по 6, но можно вручную открыть больше, например:
sudo openvt -c 9 -s "bash"
Он откроется bash
как root в / dev / tty9 и сразу переключит вас на этот TTY (если это сделано на локальном терминале, но если вы сделаете это через удаленный ssh
сеанс, в этом случае вам может понадобиться использовать chvt 9
, где 9 /dev/tty9
в этом примере). Чтобы сделать то же самое без sudo
полномочий root, вам придется сменить владельца tty, который вы хотите открыть. Например,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
Это будет входить в систему с моей оболочкой по умолчанию на tty8. В моих тестах, однако, кажется, что это работает только через TTY, так что, если вы делаете это через эмулятор терминала, это может не сработать (я получал Couldn't get a file descriptor referring to the console
ошибку и sudo openvt -c 8 -l
работал только для меня из эмулятора)
С исторической точки зрения, до того, как были созданы все модные терминальные мультиплексоры, это была полезная функция - вы могли создавать до 62 команд (возможно, серверов) на этих консолях и запускать их, работая в 63-м. В наше время это может быть не так необходимо.
Есть несколько файлов устройств, созданных по умолчанию. Активными являются номера от 1 до 6, но их можно изменить , отредактировав /etc/default/console-setup
эту часть:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
устройства ttyS *
Это файлы устройств, используемые для последовательных консолей, или UART (также известный как RS-232). В прошлом многие компьютерные системы поставлялись с последовательным портом. В настоящее время это в основном можно найти на компьютерах серверного типа. Несколько устройств ttyS могут быть полезны с концентраторами RS-232, которые позволяют управлять несколькими устройствами через USB или Ethernet.
Для инженеров-электриков (это то, чем я занимаюсь в колледже), мы используем последовательный порт для взаимодействия с микроконтроллерами и платами разработки (например, Arduino). Однопортовые компьютеры, такие как Raspberry Pi, также используют его. В настоящее время последовательное соединение устанавливается с помощью кабеля USB-UART, и открывается консоль в терминале screen
следующим образом:
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
Обратите внимание, что Arduino и Raspberry создадут свой собственный файл устройства для последовательного соединения, /dev/ttyUSB0
или/dev/ttyACM0
VCS * устройства
По данным man vcs
это консольные запоминающие устройства. Проще говоря, если вы это сделаете, sudo cat /dev/vcs1
вы увидите, что на экране /dev/tty1
, по крайней мере, до максимального количества строк в этом терминале.
Уменьшение количества консолей
Уменьшение количества актуальных файлов устройства невозможно без изменения tty.h
библиотеки и перекомпиляции ядра ( справочного и другого ). Тем не менее, удаление этих устройств может быть сделано вручную с помощью этой команды:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
Это, однако, несколько бессмысленно - файлы устройств не занимают места и не влияют на производительность системы.