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

Шаблоны Globbing будут расширяться до упорядоченного списка файлов (и каталогов), соответствующих шаблону globbing;

Если у вас есть только те файлы в вашем текущем рабочем каталоге, просто:

cat * > out

Или если нет других файлов / каталогов, которые начинаются с «SomeFile»:

cat SomeFile* > out

Или, если нет других файлов / каталогов, которые заканчиваются на «.dcd»:

cat *.dcd > out

Кроме того, в zsh вы можете включать только обычные файлы с использованием шаблона globing *(.):

cat *(.) > out
cat SomeFile*(.) > out
cat *(.).dcd > out
10
задан 21 May 2018 в 01:05

18 ответов

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

Пример:

$ tty /dev/pts/0

Это легко записать или включить в приглашение, например:

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

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

1
ответ дан 18 July 2018 в 15:16

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

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

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

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

3
ответ дан 18 July 2018 в 15:16

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

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

Загрузите ноутбук, и сразу же после исчезновения экрана заставки производителя компьютера нажмите и удерживайте нажатой клавишу Shift. На первом фиолетовом экране GNU GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter. Затем вам будет предложено другое меню фиолетового меню GNU GRUB, в котором есть список параметров ядра. Нажимайте клавишу со стрелкой вниз до тех пор, пока вы не выберете вторую запись сверху (с режимом восстановления в описании), а затем нажмите Enter. Теперь вы должны увидеть это меню: С помощью клавиш со стрелками прокрутите вниз до корня, а затем нажмите Enter. Теперь вы должны увидеть корневое приглашение, например: root@ubuntu:~# На этом этапе вы должны иметь файловую систему только для чтения. Вы должны перемонтировать его с разрешениями на запись: mount -o rw,remount / Теперь вы можете запускать команды так же, как и в терминале.
5
ответ дан 18 July 2018 в 15:16

Используйте команду tty.

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

/dev/tty1 - tty1 /dev/tty2 - tty2 /dev/tty3 - tty3 /dev/tty4 - tty4 /dev/tty5 - tty5 /dev/tty6 - tty6
11
ответ дан 18 July 2018 в 15:16

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

1
ответ дан 18 July 2018 в 15:16

Есть несколько способов узнать это. Я бы пошел с командой 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.xx). Другие команды, такие как w, who, pgrep, ps и т. д., также полезны.

Например, чтобы узнать, на каком tty запущен мой графический интерфейс:

ps $(pgrep Xorg)

Что в моем случае, потому что я не использую диспетчер дисплея, например gdm или slim, он будет производить:

PID TTY STAT TIME COMMAND 1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
18
ответ дан 18 July 2018 в 15:16

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

Пример:

$ tty /dev/pts/0

Это легко записать или включить в приглашение, например:

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

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

1
ответ дан 24 July 2018 в 20:35

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

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

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

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

3
ответ дан 24 July 2018 в 20:35

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

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

Загрузите ноутбук, и сразу же после исчезновения экрана заставки производителя компьютера нажмите и удерживайте нажатой клавишу Shift. На первом фиолетовом экране GNU GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter. Затем вам будет предложено другое меню фиолетового меню GNU GRUB, в котором есть список параметров ядра. Нажимайте клавишу со стрелкой вниз до тех пор, пока вы не выберете вторую запись сверху (с режимом восстановления в описании), а затем нажмите Enter. Теперь вы должны увидеть это меню: С помощью клавиш со стрелками прокрутите вниз до корня, а затем нажмите Enter. Теперь вы должны увидеть корневое приглашение, например: root@ubuntu:~# На этом этапе вы должны иметь файловую систему только для чтения. Вы должны перемонтировать его с разрешениями на запись: mount -o rw,remount / Теперь вы можете запускать команды так же, как и в терминале.
5
ответ дан 24 July 2018 в 20:35
  • 1
    всегда ли это открывается tty1? – luv.preet 10 April 2017 в 00:30
  • 2
    Нет, он не открывает ни одного tty. Вместо этого он монтирует корневую файловую систему Ubuntu, установленную на вашем жестком диске, в качестве интерактивной оболочки с разрешениями на запись, позволяя вам запускать на ней команды. – karel 10 April 2017 в 00:32

Используйте команду tty.

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

/dev/tty1 - tty1 /dev/tty2 - tty2 /dev/tty3 - tty3 /dev/tty4 - tty4 /dev/tty5 - tty5 /dev/tty6 - tty6
11
ответ дан 24 July 2018 в 20:35
  • 1
    он показывает оч / 18. – luv.preet 9 April 2017 в 23:54
  • 2
    это может быть запущено в tty, не так ли? Как я могу это знать? – luv.preet 9 April 2017 в 23:55
  • 3
    @ luv.preet, что - ваш терминал. См. [D1] «Разница между pts и tty» . – Chai T. Rex 9 April 2017 в 23:56
  • 4
    pts означает, что вы используете терминал из GUI или через SSH – lithium_js 9 April 2017 в 23:56
  • 5
    Вам нужно задать новый вопрос. – Chai T. Rex 9 April 2017 в 23:58

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

1
ответ дан 24 July 2018 в 20:35
  • 1
    @karel Легко представить ситуацию, когда вы пропустите текущее объявление TTY. Например, ваш профиль bash очищает экран. Я предложил команду, которую можно использовать в любое время, не только сразу после входа в систему. WRT Ctrl + Alt + F1 не работает - есть быстрое обходное решение: используйте chvt или openvt. – marian adam 10 April 2017 в 01:45
  • 2
    И BTW, запустите его с помощью sudo. Вот почему вы получили ошибку. – marian adam 10 April 2017 в 17:53

Есть несколько способов узнать это. Я бы пошел с командой 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.xx). Другие команды, такие как w, who, pgrep, ps и т. д., также полезны.

Например, чтобы узнать, на каком tty запущен мой графический интерфейс:

ps $(pgrep Xorg)

Что в моем случае, потому что я не использую диспетчер дисплея, например gdm или slim, он будет производить:

PID TTY STAT TIME COMMAND 1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
18
ответ дан 24 July 2018 в 20:35
  • 1
    +1, хотя в mate-terminal who am i ничего не возвращает, а whoami возвращает zanna, (в то время как who возвращает все сеансы (я помню связанный вопрос (который оказался неопровержимым), где мы заметили, что разные эмуляторы производят разные вывод из who)). – Zanna 10 April 2017 в 00:08
  • 2
    графический всегда будет использовать tty7, так как это единственный 1, который обеспечивает графическую поддержку – luv.preet 10 April 2017 в 00:14
  • 3
    @ Занна Я сам сталкиваюсь с этой ситуацией, но, думаю, стоит упомянуть. – Ravexina 10 April 2017 в 00:16
  • 4
    во всяком случае, who am i всегда будет хорошо работать в vt, а pgrep очень умный (вы можете использовать синтаксис $() для команды sub-backticks, которые могут немного запутаться в уценке), поэтому ваш ответ очень приятный и кто бы ни отказался от этого, не должен был этого делать ... – Zanna 10 April 2017 в 00:24
  • 5
    @ luv.preet, который выходит за рамки вашего вопроса, но см. . Разница между очками и tty :) - сообщение, в котором этот дубликат, имеет удивительный ответ – Zanna 10 April 2017 в 00:34

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

Пример:

$ tty /dev/pts/0

Это легко записать или включить в приглашение, например:

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

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

1
ответ дан 31 July 2018 в 23:37

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

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

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

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

3
ответ дан 31 July 2018 в 23:37

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

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

Загрузите ноутбук, и сразу же после исчезновения экрана заставки производителя компьютера нажмите и удерживайте нажатой клавишу Shift. На первом фиолетовом экране GNU GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter. Затем вам будет предложено другое меню фиолетового меню GNU GRUB, в котором есть список параметров ядра. Нажимайте клавишу со стрелкой вниз до тех пор, пока вы не выберете вторую запись сверху (с режимом восстановления в описании), а затем нажмите Enter. Теперь вы должны увидеть это меню: С помощью клавиш со стрелками прокрутите вниз до корня, а затем нажмите Enter. Теперь вы должны увидеть корневое приглашение, например: root@ubuntu:~# На этом этапе вы должны иметь файловую систему только для чтения. Вы должны перемонтировать его с разрешениями на запись: mount -o rw,remount / Теперь вы можете запускать команды так же, как и в терминале.
5
ответ дан 31 July 2018 в 23:37
  • 1
    всегда ли это открывается tty1? – luv.preet 10 April 2017 в 00:30
  • 2
    Нет, он не открывает ни одного tty. Вместо этого он монтирует корневую файловую систему Ubuntu, установленную на вашем жестком диске, в качестве интерактивной оболочки с разрешениями на запись, позволяя вам запускать на ней команды. – karel 10 April 2017 в 00:32

Используйте команду tty.

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

/dev/tty1 - tty1 /dev/tty2 - tty2 /dev/tty3 - tty3 /dev/tty4 - tty4 /dev/tty5 - tty5 /dev/tty6 - tty6
11
ответ дан 31 July 2018 в 23:37
  • 1
    он показывает оч / 18. – luv.preet 9 April 2017 в 23:54
  • 2
    это может быть запущено в tty, не так ли? Как я могу это знать? – luv.preet 9 April 2017 в 23:55
  • 3
    @ luv.preet, что - ваш терминал. См. [D1] «Разница между pts и tty» . – Chai T. Rex 9 April 2017 в 23:56
  • 4
    pts означает, что вы используете терминал из GUI или через SSH – lithium_js 9 April 2017 в 23:56
  • 5
    Вам нужно задать новый вопрос. – Chai T. Rex 9 April 2017 в 23:58

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

1
ответ дан 31 July 2018 в 23:37
  • 1
    @karel Легко представить ситуацию, когда вы пропустите текущее объявление TTY. Например, ваш профиль bash очищает экран. Я предложил команду, которую можно использовать в любое время, не только сразу после входа в систему. WRT Ctrl + Alt + F1 не работает - есть быстрое обходное решение: используйте chvt или openvt. – marian adam 10 April 2017 в 01:45
  • 2
    И BTW, запустите его с помощью sudo. Вот почему вы получили ошибку. – marian adam 10 April 2017 в 17:53

Есть несколько способов узнать это. Я бы пошел с командой 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.xx). Другие команды, такие как w, who, pgrep, ps и т. д., также полезны.

Например, чтобы узнать, на каком tty запущен мой графический интерфейс:

ps $(pgrep Xorg)

Что в моем случае, потому что я не использую диспетчер дисплея, например gdm или slim, он будет производить:

PID TTY STAT TIME COMMAND 1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
18
ответ дан 31 July 2018 в 23:37
  • 1
    +1, хотя в mate-terminal who am i ничего не возвращает, а whoami возвращает zanna, (в то время как who возвращает все сеансы (я помню связанный вопрос (который оказался неопровержимым), где мы заметили, что разные эмуляторы производят разные вывод из who)). – Zanna 10 April 2017 в 00:08
  • 2
    графический всегда будет использовать tty7, так как это единственный 1, который обеспечивает графическую поддержку – luv.preet 10 April 2017 в 00:14
  • 3
    @ Занна Я сам сталкиваюсь с этой ситуацией, но, думаю, стоит упомянуть. – Ravexina 10 April 2017 в 00:16
  • 4
    во всяком случае, who am i всегда будет хорошо работать в vt, а pgrep очень умный (вы можете использовать синтаксис $() для команды sub-backticks, которые могут немного запутаться в уценке), поэтому ваш ответ очень приятный и кто бы ни отказался от этого, не должен был этого делать ... – Zanna 10 April 2017 в 00:24
  • 5
    @ luv.preet, который выходит за рамки вашего вопроса, но см. . Разница между очками и tty :) - сообщение, в котором этот дубликат, имеет удивительный ответ – Zanna 10 April 2017 в 00:34

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

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