Что делает команда 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
Ответ показывает, что мы подключены к файлу устройства в / dev / pts / 0.
Наше оконное окно, которое является программной эмуляцией телетайпа (TTY), связано с мультиплексором псевдотелетипа как псевдо телетайп (PTS). И это, оказывается, номер ноль.
Тихий вариант
Опция -s
(silent) заставляет tty
не генерировать вывод.
tty-s
Это производит выходное значение, однако:
- 0 : если стандартный ввод поступает с устройства TTY, эмулированного или физического.
- 1 : если стандартный ввод не поступает с устройства TTY.
- 2 : синтаксическая ошибка, были использованы неверные параметры командной строки.
- 3 : произошла ошибка записи.
Это, вероятно, будет наиболее полезным в сценариях Bash. Но даже в командной строке мы можем продемонстрировать, как выполнить команду, только если вы работаете в окне терминала (сеанс TTY или PTS).
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.
Если вы войдете в систему и tty
команду tty
, вы увидите, что вы подключены к / dev / tty3.
Это не псевдотелептик (эмулируемый программным обеспечением); это виртуальный телетайп (эмулируется аппаратно). Он использует экран и клавиатуру, подключенные к вашему компьютеру, для эмуляции виртуального телетайпа, как это делал DEC VT100.
Вы можете использовать функциональные клавиши Ctrl + Alt с функциональными клавишами от F3 до F6, и при желании вы можете открыть четыре сессии TTY. Например, вы можете войти в tty3 и нажать Ctrl + Alt + F6, чтобы перейти к tty6.
Чтобы вернуться к графическому окружению рабочего стола, нажмите Ctrl + Alt + F2.
Нажатие Ctrl + Alt + F1 вернет вас к приглашению на вход в сеанс графического рабочего стола.
Однажды, Ctrl + Alt + F1 до Ctrl + Alt + F6 откроет полноэкранные консоли TTY, а Ctrl + Alt + F7 вернет вас в среду графического рабочего стола. Если вы работаете с более старым дистрибутивом Linux, возможно, именно так ведет себя ваша система.
Это было проверено на текущих версиях Manjaro, Ubuntu и Fedora, и все они вели себя так:
- Ctrl + Alt + F1 : возвращает вас к экрану входа графического окружения рабочего стола.
- Ctrl + Alt + F2 : возвращает вас в графическое окружение рабочего стола.
- Ctrl + Alt + F3 : открывает TTY 3.
- Ctrl + Alt + F4 : открывает TTY 4.
- Ctrl + Alt + F5 : открывает TTY 5.
- Ctrl + Alt + F6 : открывает TTY 6.
Доступ к этим полноэкранным консолям позволяет людям, использующим установки Linux только из командной строки — и многие серверы Linux настроены таким образом, — иметь несколько доступных консолей.
Вы когда-нибудь работали на машине с Linux с графическим окружением рабочего стола и что-то вызывало зависание вашей сессии? Теперь вы можете перейти к одному из сеансов консоли TTY, чтобы попытаться исправить ситуацию.
Вы можете использовать top
и ps
чтобы попытаться идентифицировать отказавшее приложение, затем использовать kill
чтобы завершить его, или просто использовать shutdown
чтобы попытаться закрыть настолько изящно, насколько позволит состояние компьютера.
СВЯЗАННЫЕ: Как убить процессы с терминала Linux
Три маленькие буквы с большой историей
Команда tty
получила свое название от устройства конца 1800-х годов, появившегося в Unix в 1971 году, и по сей день является частью Linux и Unix-подобных операционных систем.
За этим маленьким парнем стоит настоящая история.