Как проверить, какой tty я в настоящее время использую?

Существует 7 терминалов, которые могут использоваться в нашей системе. tty7 базирующийся GUI.

Как я могу знать это, какой tty я в настоящее время использую?

как, tty1, tty2.... tty6?

21
задан 20 May 2018 в 15:05

7 ответов

Команда Use tty.

, Если я прав, что это - ссылка:

/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
14
ответ дан 23 November 2019 в 01:38

Существует несколько способов узнать это. Я пошел бы с who am i (не who) команда:

$ who am i
ravexina    tty2        2017-04-10 11:19 (:0)

, Когда я нахожусь в графическом терминале, он возвратил бы что-то как:

ravexina    pts/0        2017-04-10 1:19 (:0)

Под ssh сессией с помощью результата графического терминала то же, но вместо (:0), я получу свой IP машины (192.168.x.x). другие команды как w, who, pgrep, ps, и т.д. полезны также.

, Например, для обнаружения, в котором tty работает мой графический интерфейс:

ps $(pgrep Xorg)

, Который в моем случае, потому что я не использую менеджера по оформлению как gdm или тонкий, это произведет:

 PID  TTY      STAT   TIME COMMAND
 1693 tty1     Sl     0:05 /usr/lib/xorg/Xorg
30
ответ дан 23 November 2019 в 01:38

Я предполагаю, что Вы заботитесь о чем-то еще, чем другие предоставленные ответы. Выполненный sudo fgconsole для обнаружения, какой реальный tty теперь активен.

2
ответ дан 23 November 2019 в 01:38

Давайте предпримем шаги назад и запустимся с беспорядка: что такое tty? Первоначально tty был сокращением телетайпа, который стал стеклянным телетайпом, который стал любым терминалом или соединением с одним, конкретно последовательный порт (Это все еще вокруг, обычно/dev/ttyS0,/dev/ttyUSB0 и иногда/dev/ttyacm0). Затем Вы получили псевдо ttys, и виртуальные ttys. старые руки Unix знакомы с псевдо ttys, они используются для удаленных терминалов (ssh и telnet), виртуальные терминалы (xterm и т.п.), и оконечные мультиплексоры (экран и tmux). Псевдо ttys имели различные схемы именования со временем, но текущие имена использования как/dev/pts/0. Виртуальные ttys, с другой стороны, связаны с виртуальными консолями, конкретно при использовании функциональных клавиш высокого звука управления, Вы переключаете виртуальные консоли, каждая из которых соединяется с виртуальным tty. Самый известный виртуальный tty является/dev/tty7, который часто использовал для графических сессий (потому что первые шесть обычно являются текстовыми логинами) нет ничего специального о tty7, поскольку можно выполнить X-серверы на любой виртуальной консоли (хотя выполнение один на/dev/tty1 действительно трудно, поскольку ядро открывает его для входа начальной загрузки, но я сделал это), и можно сделать текстовые входы в систему на любом виртуальном tty включая tty7 (хотя init конфигурация требуется, и динамическое выделение systemd делает вещи интересными и переключающимися на tty13 и, возможно, нуждается в изменении в карте клавиатуры).

Поэтому, если необходимо найти псевдо tty (или виртуальный tty при использовании текстового режима) существуют все виды решений как who am i, или ps ax|grep $ это относительно легко сделать, поскольку существует несколько способов узнать это, поскольку псевдо tty открыт по стандарту io в большинстве случаев и существуют другие методы, которые работают, даже когда io перенаправляется. это также имеет преимущество также выполнения правильной вещи при использовании последовательных портов и виртуального ttys, пока Вы не используете эмуляторы графического терминала или оконечные мультиплексоры.

, Но что, если Вы желаете определить виртуальную консоль? sudo fgconsole может быть полезно для интерактивных случаев. Или то, что я делаю, просто обойти консоли, поскольку переключение достаточно обычно быстро. Я не знаю о программном методе, который работает надежно в неинтерактивных или неприоритетных случаях.

Позволяют нам посмотреть на пример, который, как гарантируют, не сможет надежно ответить на виртуальную консоль когда-либо. Компьютер я сижу перед (альфой), имеет Xserver, работающий tty2 (:1), у меня есть три окна, открытые два xterms и vncviewer (подключенный к bravo:2). Один xterm выполняет экран, другой выполняет ssh charley. Экран имеет два открытые окна, ssh дельта и кому (кто правильно определяет псевдо tty в столбце два и обеспечивает подсказку (:1:S0) в столбце пять, который говорит нам, что псевдо tty подключен к первой экранной сессии, которая подключена к второму X-серверу, но не дает информации о виртуальной консоли). Выполнение, кому по любому ssh сессия дает подсказку (alpha), который определяет машину, что ssh сессия произошла, от которого сравнительно хорошо для удаленных сеансов. Хотя существует мало информации о том, что подключено к псевдо tty (и абсолютно никакая виртуальная консоль, или даже удаленная tty информация доступна), по крайней мере, удаленный хост определяется. информация об экране может быть неправильной, поскольку экранные сессии являются съемными, и vnc не предоставляет полезной информации вообще как единственной разницы между vnc сессией, и локальная сессия является числом дисплея. Во многих случаях можно предположить, что:0 находится на tty7, но не всегда, и никогда на моем, поскольку браво не имеет видеокарты вообще, и:0 vnc сессия (который путает, кто, потому что он думает, что это - локальная консоль) и ни одна из машин не использует tty7 в качестве графической сессии, потому что я (не только, чтобы быть обратным) вывожу журналы к tty7 (и tty5, tty6, и tty8 также) повторно лигирование графических сессий в другом месте. Но ожидайте, экран может также действовать как терминальная программа, разрешающая Вам установить сессию по последовательному кабелю. О чем такая сессия сообщает когда, кто выполняется? Почему ничто, но последовательный порт, подключено ли это быть через vnc, xterm, ssh, экран и последовательный адаптер usb внезапно или к моему телевидео.

5
ответ дан 23 November 2019 в 01:38

Используйте команду tty, она работает над Linux и macOS, и дайте довольно простой вывод для чтения, только название tty, в котором Вы находитесь.

Пример:

$ tty
/dev/pts/0

легко написать сценарий этого или включать его в подсказку, пример:

$ PS1='`tty`: '
/dev/pts/0: _

Этот способ, которым Вы будете всегда знать, в каком терминале Вы находитесь.

1
ответ дан 23 November 2019 в 01:38

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


При нажатии комбинации клавиатуры Ctrl+Alt+F3 показывает только черный экран, как Вы записали в комментарии, существует альтернативный способ получить доступ к корневой оболочке при начальной загрузке компьютера, не нажатие Ctrl+Alt+F3 для перевода в рабочее состояние tty.

  1. Сразу после экрана-заставки BIOS/UEFI во время начальной загрузки, с BIOS, быстро нажатие и содержит клавишу Shift, которая поднимет меню GNU GRUB. (Если Вы видите логотип Ubuntu, Вы упустили суть, где можно ввести меню GRUB.) С нажатием UEFI (возможно, несколько раз) клавиша Esc для получения до меню GRUB. Иногда экран-заставка производителя является частью загрузчика Windows, поэтому когда Вы включаете машину, это переходит прямо к экрану GRUB, и затем нажатие Shift является ненужным.

  2. От первого фиолетового GNU GRUB экран выбирают Расширенные настройки для Ubuntu с ↑ и ↓ ключами и нажимают Enter. Вам затем предложит другое фиолетовое меню меню GNU GRUB, которое имеет список опций ядра в нем.

  3. Нажмите клавишу со стрелкой вниз, пока Вы не выберете вторую запись из вершины (та с режимом восстановления в описании) и затем нажмете Enter.

    Теперь необходимо видеть это меню восстановления:

    recovery menu

  4. Используя клавиши со стрелками прокручивают вниз, чтобы базироваться и затем нажать Enter дважды.

    Необходимо теперь видеть корневую подсказку, что-то вроде этого:

    root@ubuntu:~#
    
  5. На данном этапе у Вас должна быть файловая система только для чтения. Необходимо повторно смонтировать его с полномочиями записи:

    mount -o rw,remount /  
    

    Теперь можно работать, управляет тем же как в терминале.

5
ответ дан 23 November 2019 в 01:38

За исключением GUI, в этом случае Вы получаете pts, это показывает Ваш желаемый вывод:

ls -l `tty` | awk '{print $10}'
0
ответ дан 23 November 2019 в 01:38

Другие вопросы по тегам:

Похожие вопросы: