Как получить текущее имя терминала?

17

Как получить текущее имя терминала?

Я имею в виду имя, которое psотображается в столбце TTY, например:

root@dor-desktop:/home/dor/Documents/LAMP_setup/webs_install/do/install# ps aux | egrep 'mysql|(^USER)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dor       2238  0.2  1.9 448052 79796 ?        S    17:27   0:17 gedit /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.install /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.setup
root      4975  0.1  0.5 324984 22876 ?        S    18:12   0:04 gedit /usr/local/mysql/bin/mysqld_safe
root      8160  0.0  0.0   4108   664 pts/2    S    19:08   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-networking --skip-grant-tables --user=mysql --basedir=/usr/local/mysql --ledir=/usr/local/mysql/libexec
mysql     8279  0.0  0.4 146552 19032 pts/2    Sl   19:08   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --skip-networking --skip-grant-tables --log-error=/usr/local/mysql/var/dor-desktop.err --pid-file=/usr/local/mysql/var/dor-desktop.pid --socket=/usr/local/mysql/mysql.sock --port=3306
root      8342  0.0  0.0   7632  1024 pts/2    R+   19:14   0:00 egrep --color=auto mysql|(^USER)

В приведенном выше примере мне нужно получить, pts/2который, вероятно, является именем текущего терминала, который выполнил эти команды.

жук
источник
связанные: unix.stackexchange.com/questions/270272/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

26
tty

Теперь я должен ввести 30 символов, где 3 было бы достаточно ... :-)

Хауке Лагинг
источник
apropos ttyтоже мог быть поучительным (-:
tripleee
1
@tripleee Если вы знаете, что получить результат, как правило, кажется легким. Но это было действительно сложно. Я должен поднять вопрос, чтобы выкинуть его за границу в 125 пунктов, чтобы он мог предложить заслуженную награду за мои большие усилия ...
Хауке Лагинг
2
Ваш ответ заставил меня задуматься, откуда tty берется название PTY или TTY. Я побежал, strace -o spork ttyчтобы выяснить, что он делает ссылку для чтения в файле / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 замечательно, что / proc может использоваться для таких изящных вещей, но что делали ранние Unix, без гибкой файловой системы / proc, чтобы получить tty name?
Брюс Эдигер
Вы могли бы просто объяснить, что это за команда, что она делает, и что еще вы можете с ней делать и что, черт возьми, это был бы лучший ответ.
Бобби
@Bobby Каждый ответ можно сделать лучше. Спрашивающий решил свою проблему через две минуты; не так уж и плохо ИМХО. Серьезно, я понятия не имею, что еще ты можешь сделать tty. Что он делает, это именно то, о чем вопрос. Я даже не понимаю разницу между «что это за команда» и «что она делает». Что такое "команда"? Но, эй, я не хочу, чтобы голосование было даром. Если вы напишите явно лучший ответ (который, возможно, помешал мой), я дам за это вознаграждение в 50 представителей (как можно скорее, т.е. через два дня).
Хауке Лагинг
3

Re: «Вы могли бы просто объяснить, что это за команда, что она делает, и что еще вы можете с ней делать и что-то еще, это был бы лучший ответ. - Бобби»

Unix-имя текущего терминала (или консоли, как мы, старые, иногда называем его также), выглядит так: / dev / tty, который можно использовать для простого создания нового многострочного файла из командной строки, например: cp / dev / tty README.md (нажатие затем помещает курсор на новую пустую строку, где вы можете ввести текст, снова нажать клавишу возврата, ввести вторую строку и т. д. Когда вы закончите вводить строки, выполните control-d, которая приводит к выходу команды cp и вы сделаете многострочный файл с помощью одной команды).

user120016
источник
«Имя» tty является производным от TeleType (оригинальное оконечное устройство), которое также объясняет, почему оно находится в / dev dir.
user120016
Смотрите также unix.stackexchange.com/questions/187319/...
user120016