LinuxКак сделать

Что такое TTY в Linux? (и как использовать команду tty)

Машинка для телетайпа
Июнь Мари Собрито / Shutterstock.com

Что делает команда tty ? Он печатает название терминала, который вы используете. TTY расшифровывается как «телетайп». Какая история стоит за названием команды? Это требует большего объяснения.

Телепринтеры 1800-х годов

В 1830-х и 1840-х годах были разработаны машины, известные как телепринтеры . Эти машины могут отправлять печатные сообщения «по проводам» в отдаленные места. Сообщения были набраны отправителем на своего рода клавиатуре. Они были напечатаны на бумаге на приемном конце. Они были эволюционным шагом в телеграфии , которая ранее опиралась на азбуку Морзе и подобные ей коды.

Сообщения были закодированы и переданы, затем получены, декодированы и напечатаны. Было несколько методов, используемых для кодирования и декодирования сообщений. Самый известный и один из самых плодовитых был запатентован в 1874 году Эмилем Бодо , для которого названа скорость передачи данных . Его схема кодирования символов предшествует ASCII на 89 лет.

Кодирование Бодо в конечном итоге стало наиболее близким к стандарту в кодировании телепринтера, и оно было принято большинством производителей. Оригинальный аппаратный дизайн Бодо имел всего пять клавиш, похожих на клавиши пианино. Оператор должен был выучить конкретную комбинацию клавиш для каждой буквы. В итоге система кодирования Baudot была соединена с традиционной раскладкой клавиатуры.

Чтобы отметить это продвижение, машины были названы телетайпами. Это было сокращено до телетайпа и в конечном итоге до TTY. Так вот откуда мы получаем аббревиатуру TTY, но при чем тут телеграфия?

ASCII и Телекс

Когда ASCII прибыл в 1963 году, он был принят производителями телетайпа. Несмотря на изобретение и широкое использование телефона, телетайпы все еще набирали силу.

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

Компьютеры тоже развивались. Они стали способны взаимодействовать с пользователями в режиме реального времени и поддерживать несколько пользователей. Старый пакетный метод работы стал недостаточным. Люди не хотели ждать своих результатов 24 часа или дольше. Создание стопок перфокарт и ожидание результатов было более неприемлемым.

Людям требовалось устройство, которое позволяло бы им вводить инструкции и отправлять результаты обратно им. Люди хотели эффективности.

Телетайп перепрофилированный

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

Что заботило телетайп, если устройство на другом конце соединения не было другим телетайпом? Пока он говорил на одном языке кодирования и мог принимать сообщения и отправлять сообщения обратно, телетайп был счастлив.

И, конечно, он использовал более-менее стандартную клавиатуру.

Аппаратные эмулированные телетайпы

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

В конечном итоге они были заменены устройствами, которые эмулировали эти электромеханические машины с использованием электроники. У них были катодно-лучевые трубки (ЭЛТ) вместо бумажных рулонов. Они не дрожали при доставке ответов с компьютера. Они разрешали до сих пор невозможные функции, такие как перемещение курсора по экрану, очистка экрана, выделение текста и т. Д.

DEC VT05 был ранним примером виртуального телетайпа и предком знаменитого DEC VT100 . Миллионы DEC VT100 были проданы.

Программные эмулированные телетайпы

В среде рабочего стола Linux и других Unix-подобных операционных систем, таких как macOS, окно терминала и приложения, такие как x-term и Konsole, являются примерами виртуальных телетайпов. Но они полностью эмулируются программным обеспечением. Они называются псевдо-телетайпами. Это было сокращено до PTS.

И вот тут приходит tty .

Что может сказать нам tty?

В Linux существует мультиплексор псевдо-телетайпа, который обрабатывает соединения со всеми псевдо-телетайпами окна терминала (PTS). Мультиплексор является ведущим, а PTS являются ведомыми. Мультиплексор обращается к ядру через файл устройства, расположенный в / dev / ptmx.

Команда tty напечатает имя файла устройства, которое ваш ведомый псевдотелептик использует для взаимодействия с мастером. И это, по сути, номер вашего окна терминала.

Давайте посмотрим, что tty сообщает для нашего окна терминала:

  TTY 

tty в окне терминала

Ответ показывает, что мы подключены к файлу устройства в / dev / pts / 0.

Наше оконное окно, которое является программной эмуляцией телетайпа (TTY), связано с мультиплексором псевдотелетипа как псевдо телетайп (PTS). И это, оказывается, номер ноль.

Тихий вариант

Опция -s (silent) заставляет tty не генерировать вывод.

  tty-s 

tty -s в окне терминала

Это производит выходное значение, однако:

  • 0 : если стандартный ввод поступает с устройства TTY, эмулированного или физического.
  • 1 : если стандартный ввод не поступает с устройства TTY.
  • 2 : синтаксическая ошибка, были использованы неверные параметры командной строки.
  • 3 : произошла ошибка записи.

Это, вероятно, будет наиболее полезным в сценариях Bash. Но даже в командной строке мы можем продемонстрировать, как выполнить команду, только если вы работаете в окне терминала (сеанс TTY или PTS).

  tty -s && echo "In tty" 

tty -s && echo "In tty" в окне терминала

Поскольку мы работаем в сеансе TTY, наш код выхода равен 0, и вторая команда выполняется.

«В тт» в окне терминала

Кому Командование

Другие команды могут показать ваш номер TTY. Команда who выводит информацию для всех зарегистрированных пользователей, включая вас.

Алек и Мэри удаленно подключены к компьютеру Linux. Они подключены к ПТС один и два.

Пользователь Дэйв отображается как подключенный к «: 0».

Это представляет экран и клавиатуру, физически подключенную к компьютеру. Хотя экран и клавиатура являются аппаратными устройствами, они все равно подключены к мультиплексору через файл устройства. tty показывает, что это / dev / pts / 2.

  кто 
  TTY 

кто и тты в терминальном окне

СВЯЗАННЫЕ: Как определить текущую учетную запись пользователя в Linux

Доступ к TTY

Вы можете получить доступ к полноэкранному сеансу TTY, удерживая клавиши Ctrl + Alt и нажав одну из функциональных клавиш.

Ctrl + Alt + F3 вызовет приглашение входа в систему tty3.

консоль tty3

Если вы войдете в систему и tty команду tty , вы увидите, что вы подключены к / dev / tty3.

Это не псевдотелептик (эмулируемый программным обеспечением); это виртуальный телетайп (эмулируется аппаратно). Он использует экран и клавиатуру, подключенные к вашему компьютеру, для эмуляции виртуального телетайпа, как это делал DEC VT100.

Вы можете использовать функциональные клавиши Ctrl + Alt с функциональными клавишами от F3 до F6, и при желании вы можете открыть четыре сессии TTY. Например, вы можете войти в tty3 и нажать Ctrl + Alt + F6, чтобы перейти к tty6.

консоль tty6

Чтобы вернуться к графическому окружению рабочего стола, нажмите Ctrl + Alt + F2.

Нажатие Ctrl + Alt + F1 вернет вас к приглашению на вход в сеанс графического рабочего стола.

Однажды, Ctrl + Alt + F1 до Ctrl + Alt + F6 откроет полноэкранные консоли TTY, а Ctrl + Alt + F7 вернет вас в среду графического рабочего стола. Если вы работаете с более старым дистрибутивом Linux, возможно, именно так ведет себя ваша система.

Это было проверено на текущих версиях Manjaro, Ubuntu и Fedora, и все они вели себя так:

  1. Ctrl + Alt + F1 : возвращает вас к экрану входа графического окружения рабочего стола.
  2. Ctrl + Alt + F2 : возвращает вас в графическое окружение рабочего стола.
  3. Ctrl + Alt + F3 : открывает TTY 3.
  4. Ctrl + Alt + F4 : открывает TTY 4.
  5. Ctrl + Alt + F5 : открывает TTY 5.
  6. Ctrl + Alt + F6 : открывает TTY 6.

Доступ к этим полноэкранным консолям позволяет людям, использующим установки Linux только из командной строки — и многие серверы Linux настроены таким образом, — иметь несколько доступных консолей.

Вы когда-нибудь работали на машине с Linux с графическим окружением рабочего стола и что-то вызывало зависание вашей сессии? Теперь вы можете перейти к одному из сеансов консоли TTY, чтобы попытаться исправить ситуацию.

Вы можете использовать top и ps чтобы попытаться идентифицировать отказавшее приложение, затем использовать kill чтобы завершить его, или просто использовать shutdown чтобы попытаться закрыть настолько изящно, насколько позволит состояние компьютера.

СВЯЗАННЫЕ: Как убить процессы с терминала Linux

Три маленькие буквы с большой историей

Команда tty получила свое название от устройства конца 1800-х годов, появившегося в Unix в 1971 году, и по сей день является частью Linux и Unix-подобных операционных систем.

За этим маленьким парнем стоит настоящая история.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone