Ttys не просто устройства ввода / вывода. Они также выполняют специальную работу, выступая в качестве управляющего терминала для сеанса, например, отправляя сигналы (Ctrl+C). / dev / ttyNN - это виртуальные консоли, которые являются полноэкранными дисплеями на мониторе.
Терминалы начинаются с /dev /tty1. Обычно вы можете переключиться на эти консоли, нажав клавиши Ctrl+Alt+Fn.
Например, Ctrl+Alt+F1 приведет вас к первому виртуальному терминалу. В настоящее время большинство дистрибутивов Linux используют X-сервер от tty1. Таким образом, нажатие Ctrl+Alt+F1 может не иметь эффекта.
$ ps ax | grep Xorg | grep -v grep
1504 tty1 Ss+ 44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1
Ctrl+Alt+F2 приведет вас ко второму терминалу. Обычно дистрибутивы запускают программу входа в систему (agetty) на виртуальном терминале.
$ ps ax | grep tty2 | grep -v grep
31865 tty2 Ss+ 0:00 /sbin/agetty tty2 38400
Программы входа в систему предоставляют вам приглашение для входа в систему и позволяют войти в систему с именем пользователя / паролем. Скрипты инициализации решают, где будут запускаться все программы входа в систему. Поэтому, в зависимости от этого, вы можете видеть или не видеть приглашение для входа, скажем, tty9. Чтобы вернуться к интерфейсу GUI, нажмите Ctrl+Alt+F1(как в примере, приведенном выше).
/dev/tty0 - это специальное устройство, которое указывает на текущий терминал. Таким образом, независимо от того, откуда вы его запускаете (с любой виртуальной консоли), все, что читается из / записывается в tty0, отправляется на ваш текущий терминал.
Второй столбец в «ps ax» также содержит управляющий терминал программы. Для некоторых программ, таких как демоны, вы можете видеть, что столбец - «?', что означает, что они не связаны с терминалом.
/dev/pts/0 и т. д. являются псевдо-терминальными устройствами, которые не подключены к системному дисплею. например, терминал, который вы получаете, когда открываете терминал gnome или любой другой терминал с графическим интерфейсом. Это клиент-серверный подход, при котором клиентская часть будет экспортироваться в такие программы, как bash. Данные, отправляемые программой на псевдотерминал, отправляются на сторону «сервера» (которая обычно отслеживается другой программой, такой как gnome-терминал). Процесс управления (на стороне сервера) определяет, что необходимо отправить в терминал, что в конечном итоге увидит клиент. Эти устройства помогают вам открывать несколько «графических терминалов» без каких-либо ограничений в вашей системе, по-прежнему обеспечивая один и тот же старый терминал, как элементы управления (ioctl (), настройка цвета, отправка сигналов [Ctrl+C] и т.д.),