Linux как поменять tty

Что такое TTY в Linux?

Обновл. 9 Сен 2021 |

Команда tty (сокр. от англ. «teletypewriter») выводит имя используемого вами терминала в Linux. Но какая предыстория стоит за названием этой команды и чем она может быть нам полезна? Сейчас разберемся.

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

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

Перед отправкой сообщение кодировалось, затем передавалось получателю, на месте получения оно декодировалось и распечатывалось. Для кодирования и декодирования сообщений использовалось несколько методов. Самым известным и популярным являлся метод, запатентованный в 1874 году Эмилем Бодо, в честь которого была названа единица измерения символьной скорости передачи данных (бод). К слову сказать, его схема кодирования символов на 89 лет опередила появление стандарта ASCII.

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

В ознаменование этого прогресса машины были названы «телетайпными пишущими машинами» или просто «телетайпами» (англ. «teletypes», сокр. от «teletypewriters»). В дальнейшем название урезали до TTY. Вот откуда появилась аббревиатура TTY. Но какое отношение телеграф имеет к вычислительной технике?

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

ASCII и Telex

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

Телекс (англ. «Telex», сокр. от «telegraph exchange») — это всемирная сеть телетайпов, которая позволяла отправлять письменные сообщения по всему миру. Они были основным средством передачи письменных сообщений в период после Второй мировой войны вплоть до бума факсимильной связи (факсов) в 1980-х годах.


Советский факсимильный аппарат «ФТА-П», 1960 год

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

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

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

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

Читайте также:  Добавление нового устройства windows

Видеотерминал DEC VT05 был ранним примером виртуального телетайпа и предком знаменитого DEC VT100. Продажи DEC VT100 исчислялись миллионами штук.

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

В Linux и других UNIX-подобных операционных системах (например, macOS), окно терминала и приложения по типу x-term и Konsole являются примерами виртуальных телетайпов, работа которых полностью эмулируется при помощи программного обеспечения. Из-за этой особенности терминалы получили название псевдо-телетайп (сокр. «PTS», от англ. «pseudo-teletypes»).

Команда tty

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

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

Давайте посмотрим, какую информацию выведет команда tty для нашего окна терминала:

Как видите, мы подключены к специальному файлу устройства /dev/pts/1.

Наше окно терминала, представляющее собой программную эмуляцию телетайпа (TTY), подключено к мультиплексору псевдо-телетайпа как псевдо-телетайп (PTS) под номером 1.

Тихий режим

Опция -s (silent) приводит к тому, что команда tty перестает генерировать выходные данные:

Некоторые служебные значения, возвращаемые командой tty:

0 — если стандартный ввод поступает с устройства TTY (эмулированного или физического).

1 — если стандартный ввод не поступает с устройства TTY.

2 — синтаксическая ошибка, использовались неправильные параметры командной строки.

3 — произошла ошибка записи.

Данные значения будут наиболее полезны при написании bash-скриптов. Но даже в командной строке мы можем продемонстрировать, как выполнить команду при условии, что вы работаете в окне терминала (сеанс TTY или PTS).

tty -s && echo «In a tty»

Примечание: Оператор && является логическим оператором И. Если в командной строке находится command1 && command2 , то command2 выполняется только в том случае, если статус выхода из команды command1 равен 0 , что говорит об успешном её завершении.

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

Команда who

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

На следующем скриншоте видно, что к компьютеру с Linux подключен пользователь diego. Часть :0 представляет собой экран и клавиатуру, физически подключенные к компьютеру. Несмотря на то, что экран и клавиатура являются аппаратными устройствами, они все равно соединены с мультиплексором через файл устройства /dev/pts/1.

Доступ к TTY

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

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

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

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

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

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

Следующие сочетания клавиш были протестированы на текущих версиях дистрибутивов Debian, Manjaro, Ubuntu и Fedora:

Ctrl+Alt+F1 — возвращает вас на экран входа в графическую среду рабочего стола.

Ctrl+Alt+F2 — возвращает вас в графическую среду рабочего стола.

Ctrl+Alt+F3 — открывает tty3.

Ctrl+Alt+F4 — открывает tty4.

Ctrl+Alt+F5 — открывает tty5.

Ctrl+Alt+F6 — открывает tty6.

Читайте также:  Что сделать чтоб linux

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

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

Заключение

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

Источник

Как переключаться между TTY без использования функциональных клавиш в Linux

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

Прежде чем идти дальше, мы посмотрим, что такое TTY.

Как упоминалось в ответе на форуме AskUbuntu, слово TTY появилось из TeleTYpewriter.

Еще в ранние дни Unix пользовательские терминалы, подключенные к компьютерам, были электромеханическими телепринтерами или телетайпами (tty вкратце).

С тех пор имя TTY продолжает использоваться для консолей с текстом. В настоящее время все текстовые консоли представляют собой виртуальные консоли, а не физические консоли. Команда TTY печатает имя файла терминала, подключенного к стандартному входу.

Переключение между TTY в Linux

По умолчанию в Linux есть 7 tty.

Они известны как tty1, tty2 … .. tty7.

От 1 до 6 tty – только командная строка.

7th tty – графический интерфейс (ваш рабочий стол X).

Вы можете переключаться между различными TTY, используя клавиши CTRL + ALT + Fn.

Например, чтобы переключиться на tty1, мы набираем CTRL + ALT + F1.

Вот как выглядит tty1 на сервере Ubuntu 18.04 LTS.

Если ваша система не имеет сеанса X, просто введите Alt + Fn. Вам не нужно использовать CTRL.

В некоторых версиях Linux (например, с Ubuntu 17.10 и далее) на экране входа в систему теперь используется виртуальная консоль 1.

Таким образом, вам нужно нажать CTRL + ALT + F3 до CTRL + ALT + F6 для доступа к виртуальным консолям.

Чтобы вернуться в среду рабочего стола, нажмите CTRL + ALT + F2 или CTRL + ALT + F7 на Ubuntu 17.10 и более поздних версиях.

До сих пор мы видели, что мы можем легко переключаться между TTY, используя CTRL + ALT + Function_Key (F1-F7).

Однако, если вы не хотите использовать клавиши функций по какой-либо причине, в Linux есть простая команда с именем chvt.

chvt описание

Команда «chvt N» позволяет вам переключиться на терминал N переднего плана, так же, как нажать CTRL + ALT + Fn.

Соответствующий экран создается, если он еще не существует.

Посмотрим, напечатаем ли система текущий tty:

Пример вывода с моего сервера Ubuntu 18.04 LTS.

Теперь перейдем к tty2. Для этого введите:

Помните, что вам нужно использовать «sudo» с командой chvt.

Теперь проверьте текущий tty с помощью команды:

Вы увидите, что tty теперь изменился.

Аналогичным образом, вы можете переключиться на tty3, используя «sudo chvt 3», tty4, используя «sudo chvt 4» и так далее.

Команда Chvt может быть полезна, когда какая-либо из ваших функциональных клавиш не работает.

Чтобы просмотреть общее количество активных виртуальных консолей, запустите:

Как вы можете видеть, в моей системе есть два активных VT.

Вы можете увидеть следующий нераспределенный виртуальный терминал, используя команду:

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

Читайте также:  Raid driver windows installation

Чтобы избавиться от неиспользуемых VT, просто введите:

Вышеупомянутая команда освобождает память ядра и структуры данных для всех неиспользуемых виртуальных консолей.

Чтобы сказать проще, эта команда освободит все ресурсы, связанные с неиспользуемыми виртуальными консолями.

Для получения дополнительной информации см. Справочные страницы соответствующей команды.

Источник

Что такое tty и как я могу получить доступ к tty?

Я продолжаю слышать об этих вещах, известных как tty ‘s.

как я могу получить к ним доступ

tty это одна из тех забавных команд Unix, которая печатает имя терминала, подключенного к стандартному вводу.

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

По умолчанию Ubuntu имеет 7 tty.

  • Вплоть до Ubuntu 17.10 1-6 только командная строка и 7 запускает ваш сеанс X (ваш обычный рабочий стол).
  • В Ubuntu 17.10 и новее это экран входа в систему 1 GUI, рабочий стол GUI 2 и командные строки 3-7 .

Чтобы получить к ним доступ, используйте эту комбинацию клавиш:

Ctrl + Alt + F1 (Или F3 на 17,10 и выше)

(изменение F1 на F1-F6 для доступа к нужному терминалу)

Чтобы вернуться к сеансу графического интерфейса пользователя (обычный рабочий стол):

Ctrl + Alt + F7 (Или F2 на 17,10 и выше)

Вы можете изменить отображаемый TTY в командной строке с chvt (требуются sudo привилегии), например, из SSH. Вот соответствующая часть manpage ( man chvt ):

chvt — изменить виртуальный терминал переднего плана

Команда chvt N делает / dev / ttyN терминалом переднего плана. (Соответствующий экран создается, если он еще не существовал. Чтобы избавиться от неиспользуемых VT, используйте deallocvt) Сочетание клавиш (Ctrl-) LeftAlt-FN (с N в диапазоне 1-12) обычно имеет аналогичный эффект.

Tty, сокращение от teletype и, возможно, более часто называемое терминалом , — это устройство, которое позволяет вам взаимодействовать с системой, отправляя и получая данные, такие как команды и вывод, который они производят.

Существует множество типов ttys, но в настоящее время большинство ttys реализованы в программном обеспечении, например, в графических консолях, к которым вы можете получить доступ с помощью Ctrl + Alt + Fn, или в эмуляторах терминалов, таких как терминал Gnome, которые выполняются в сеансе X.

Существует также tty команда, которая показывает узел устройства терминала, в котором он работает (или печатает «не tty», если он не работает внутри терминала; да, можно запускать команды вне терминала). Например:

Когда я вошел в систему и запустил оболочку на машине, оболочка обычно работает внутри терминала, а именно здесь /dev/pts/0 . Однако когда я ssh host command запускаю команду на удаленном хосте, команда не запускается внутри терминала.

Это меняет ваше рабочее пространство: например, вы можете открыть текстовый файл и изменить его на tty2, тогда у вас может быть команда / ls для справки. Это очень полезно для такой среды, как Ubuntu Server.

Это эквивалентно открытию двух вкладок в среде графического интерфейса.

В Ubuntu Server (16.04.3 LTS — для меня) я могу использовать ALT + F1-F6 или ALT +, LeftArrow чтобы вернуться назад или ALT +, RightArrow чтобы перейти вперед.

Вы можете увидеть свой tty, выйдя из Ubuntu Server (запустить logout ) и посмотреть вверху, Ubuntu 16.04.3 LTS ubuntu tty# что является стандартным, но может отличаться от версии к версии.

Если ваш tty не отображается на экране входа в систему, вы можете запустить sudo nano /etc/issue и сверху, вы можете добавить все, что вам нравится, но добавить tty, который вам нужно разместить \l . Место \n для имени хоста.

Источник

Оцените статью