Что делает команда tty? Он печатает имя используемого вами терминала. TTY означает «телетайп». Какая история стоит за названием команды? Это требует немного большего объяснения.
Оглавление
Телепринтеры 1800-х годов
В 1830-х и 1840-х годах машины, известные как телепринтеры были разработаны. Эти машины могли отправлять печатные сообщения «по проводам» в отдаленные места. Сообщения были набраны отправителем на своего рода клавиатуре. Они были распечатаны на бумаге у получателя. Они были эволюционным шагом в телеграфия, который ранее полагался на Морс и подобные коды.
Сообщения кодировались и передавались, затем принимались, декодировались и печатались. Для кодирования и декодирования сообщений использовалось несколько методов. Самый известный и один из самых плодотворных был запатентован в 1874 г. Эмиль Бодо, для кого скорость передачи называется. Его схема кодирования символов датирована ASCII на 89 лет.
Кодирование Бодо в конечном итоге стало наиболее близким к стандарту кодирования телетайпов, и его приняли большинство производителей. В оригинальной конструкции Бодо было всего пять клавиш, как у фортепиано. Оператор должен был выучить определенную комбинацию клавиш для каждой буквы. В конце концов, система кодирования Бодо была объединена с традиционной раскладкой клавиатуры.
Чтобы отметить это достижение, машины были названы телетайпами. Это было сокращено до телетайпов и, в конечном итоге, до TTY. Вот где мы получаем акроним TTY от, но какое отношение телеграфия имеет к вычислениям?
ASCII и телекс
Когда в 1963 году появился ASCII, он был принят производителями телетайпов. Несмотря на изобретение и широкое распространение телефона, телетайпы все еще были популярны.
Телекс была всемирной сетью телетайпов, которая позволяла отправлять письменные сообщения по всему миру. Они были основным средством передачи письменных сообщений в период после Второй мировой войны до штанга факсимильного аппарата 1980-х годов.
Компьютеры тоже развивались. Они стали способны взаимодействовать с пользователями в режиме реального времени и поддерживать нескольких пользователей. Старый пакетный метод работы стал недостаточным. Люди не хотели ждать результатов 24 часа или дольше. Изготовление стопок перфокарт и ожидание результатов в течение ночи было неприемлемо.
Людям требовалось устройство, которое позволяло бы вводить инструкции и получать результаты, отправленные им обратно. Людям нужна была эффективность.
Телетайп переделан
Телетайп был идеальным кандидатом в качестве устройства ввода / вывода. В конце концов, это было устройство, позволяющее печатать, кодировать, отправлять, получать, декодировать и распечатывать сообщения.
Какое дело телетайпу, если устройство на другом конце соединения не было другим телетайпом? Пока он говорил на одном языке кодирования и мог принимать сообщения и отправлять их обратно, телетайп был счастливым.
И, конечно же, использовалась более-менее стандартная клавиатура.
Аппаратно эмулированные телетайпы
Телетайпы стали стандартным средством взаимодействия с большими мини-компьютерами и мэйнфреймами той эпохи.
В конечном итоге они были заменены устройствами, имитировавшими эти электромеханические машины с использованием электроники. У них Катодно-лучевые трубки (ЭЛТ) вместо бумажных рулонов. Они не дрожали при доставке ответов с компьютера. Они допускали невозможные до сих пор функции, такие как перемещение курсора по экрану, очистка экрана, выделение текста жирным шрифтом и т. Д.
В DEC VT05 был одним из первых примеров виртуального телетайпа и предком известного DEC VT100. Были проданы миллионы DEC VT100.
Программно-эмулированные телетайпы
В среде рабочего стола Linux и других Unix-подобных операционных систем, таких как macOS, окно терминала и приложения, такие как x-срок и Konsole примеры виртуальных телетайпов. Но они полностью эмулируются программно. Их называют псевдотелетайпами. Это было сокращено до PTS.
И тут на помощь приходит tty.
Что может нам сказать tty?
В Linux есть мультиплексор псевдотелетайпа, который обрабатывает соединения от всех псевдотелетипов окон терминала (PTS). Мультиплексор является ведущим, а PTS — ведомыми. Мультиплексор адресуется ядром через файл устройства, расположенный в / dev / ptmx.
Команда tty напечатает имя файла устройства, который ваш ведомый псевдотелетайп использует для взаимодействия с мастером. И это, по сути, номер вашего окна терминала.
Посмотрим, какие отчеты tty для нашего окна терминала:
tty
Ответ показывает, что мы подключены к файлу устройства по адресу / dev / pts / 0.
Наше окно терминала, которое представляет собой программную эмуляцию телетайпа (TTY), взаимодействует с мультиплексором псевдотелетайпа как псевдотелетайп (PTS). И это номер ноль.
Тихий вариант
Параметр -s (без вывода сообщений) заставляет tty не генерировать вывод.
tty -s
Однако он дает выходное значение:
0: если стандартный ввод поступает с устройства TTY, эмулируемого или физического.
1: если стандартный ввод не поступает с устройства TTY.
2: Синтаксическая ошибка, использовались неверные параметры командной строки.
3: Произошла ошибка записи.
Это, вероятно, будет наиболее полезно в сценариях Bash. Но даже в командной строке мы можем продемонстрировать, как выполнить команду, только если вы работаете в окне терминала (TTY или сеанс PTS).
tty -s && echo "In a tty"
Поскольку мы работаем в сеансе TTY, наш код выхода равен 0, и выполняется вторая команда.
Команда ВОЗ
Другие команды могут показать ваш номер TTY. Команда who отобразит информацию обо всех вошедших в систему пользователях, включая вас.
Алек и Мэри удаленно подключены к компьютеру с Linux. Они подключены к ПТС один и два.
Пользователь dave показан как подключенный к «: 0».
Это экран и клавиатура, физически подключенные к компьютеру. Несмотря на то, что экран и клавиатура являются аппаратными устройствами, они все равно подключены к мультиплексору через файл устройства. tty показывает, что это / dev / pts / 2.
who
tty
Доступ к телетайпу
Вы можете получить доступ к полноэкранному сеансу TTY, удерживая клавиши Ctrl + Alt и нажав одну из функциональных клавиш.
Ctrl + Alt + F3 вызовет приглашение входа в систему tty3.
Если вы войдете в систему и введете команду tty, вы увидите, что подключены к / dev / tty3.
Это не псевдотелетайп (эмулируемый программно); это виртуальный телетайп (эмулируемый аппаратно). Он использует экран и клавиатуру, подключенные к вашему компьютеру, для имитации виртуального телетайпа, как это делал DEC VT100.
Вы можете использовать функциональные клавиши Ctrl + Alt с функциональными клавишами от F3 до F6 и при желании открыть четыре сеанса телетайпа. Например, вы можете войти в 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: открывает телетайп 6.
Наличие доступа к этим полноэкранным консолям позволяет людям, использующим установки Linux только из командной строки — а многие серверы Linux настроены таким образом — иметь несколько доступных консолей.
Вы когда-нибудь работали на Linux-машине с графической средой рабочего стола, и что-то приводило к зависанию вашей сессии? Теперь вы можете перейти к одному из сеансов консоли TTY, чтобы попытаться исправить ситуацию.
Вы можете использовать top и ps, чтобы попытаться идентифицировать отказавшее приложение, затем используйте kill, чтобы завершить его, или просто используйте выключение, чтобы попытаться завершить работу настолько изящно, насколько позволяет состояние компьютера.
Три маленьких письма с большой историей
Команда tty получила свое название от устройства конца 1800-х годов, появилось в Unix в 1971 году и по сей день является частью Linux и Unix-подобных операционных систем.
У этого маленького парня есть настоящая история.