Как я могу отличить окно терминала (GUI) от консоли (CTRL + ALT + F3)?

Это (крайне вероятно) было исправлено путем обновления grub от 2.02~beta3-4ubuntu7.1 до 2.02~beta3-4ubuntu7.2.

2
задан 17 February 2018 в 19:57

3 ответа

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

tty - печатать имя файла терминала, подключенного к стандартным входам:
/dev/pts/10
/dev/tty1
Эта функция, написанная Сергеем Колодяжным, использование tty. ps hotty $$ (сокращение от ps --no-header --format tty --pid $$):
pts/10
tty1
who who whom | awk '{ print $2 }' (на самом деле это who с двумя произвольными аргументами, равными who -m - также соответствует каламбур):
pts/10
tty1
11] Я подозреваю, что значения TERM различаются между распределениями и четными выпусками, но tty является стабильным и надежным способом. Я бы использовал его так:

if tty|grep -q tty; then
  echo "That's a TTY."
else
  echo "That's not a TTY."
fi

Кажется, проблема с по крайней мере who в gnome-terminal, к счастью, для этой проблемы существует сценарий оболочки.

14] Полезные ссылки:

tty - распечатать имя файла терминала, подключенного к стандартным входам:
/dev/pts/10
/dev/tty1
Эта функция, написанная Сергеем Колодяжным, использует tty. [!d2 ] Как получить tty, в котором работает bash? · Unix.SE ps hotty $$ (сокращение от ps --no-header --format tty --pid $$):
pts/10
tty1
5
ответ дан 22 May 2018 в 13:03

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

tty - печатать имя файла терминала, подключенного к стандартным входам: /dev/pts/10 /dev/tty1 Эта функция, написанная Сергеем Колодяжным, использование tty. ps hotty $$ (сокращение от ps --no-header --format tty --pid $$): pts/10 tty1 who who whom | awk '{ print $2 }' (на самом деле это who с двумя произвольными аргументами, равными who -m - также соответствует каламбур): pts/10 tty1

Я подозреваю, что значения TERM различаются между распределениями и четными выпусками, но tty является стабильным и надежным способом. Я бы использовал его так:

if tty|grep -q tty; then echo "That's a TTY." else echo "That's not a TTY." fi

Кажется, проблема с по крайней мере who в gnome-terminal, к счастью, для этой проблемы существует сценарий оболочки.

Полезные ссылки:

tty - распечатать имя файла терминала, подключенного к стандартным входам: /dev/pts/10 /dev/tty1 Эта функция, написанная Сергеем Колодяжным, использует tty. Как получить tty, в котором работает bash? · Unix.SE ps hotty $$ (сокращение от ps --no-header --format tty --pid $$): pts/10 tty1
5
ответ дан 17 July 2018 в 20:37

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

tty - печатать имя файла терминала, подключенного к стандартным входам: /dev/pts/10 /dev/tty1 Эта функция, написанная Сергеем Колодяжным, использование tty. ps hotty $$ (сокращение от ps --no-header --format tty --pid $$): pts/10 tty1 who who whom | awk '{ print $2 }' (на самом деле это who с двумя произвольными аргументами, равными who -m - также соответствует каламбур): pts/10 tty1

Я подозреваю, что значения TERM различаются между распределениями и четными выпусками, но tty является стабильным и надежным способом. Я бы использовал его так:

if tty|grep -q tty; then echo "That's a TTY." else echo "That's not a TTY." fi

Кажется, проблема с по крайней мере who в gnome-terminal, к счастью, для этой проблемы существует сценарий оболочки.

Полезные ссылки:

tty - распечатать имя файла терминала, подключенного к стандартным входам: /dev/pts/10 /dev/tty1 Эта функция, написанная Сергеем Колодяжным, использует tty. Как получить tty, в котором работает bash? · Unix.SE ps hotty $$ (сокращение от ps --no-header --format tty --pid $$): pts/10 tty1
5
ответ дан 23 July 2018 в 21:16

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

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