Como obter o nome do terminal atual?

17

Como obtenho o nome do terminal atual?

Quero dizer o nome que psaparece na coluna TTY, por exemplo:

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)

No exemplo acima, preciso buscar pts/2qual é provavelmente o nome do terminal atual que executou esses comandos.

Dor
fonte
related: unix.stackexchange.com/questions/270272/...
Ciro Santilli新疆改造中心法轮功六四事件

Respostas:

26
tty

Agora eu tenho que digitar 30 caracteres onde 3 seria o suficiente ... :-)

Hauke ​​Laging
fonte
apropos ttypode ter sido instrutivo também (-:
tripleee 31/05
11
@tripleee Se você conhece o resultado, geralmente parece fácil. Mas isso foi realmente difícil. Eu deveria upvote a questão, a fim de expulsá-lo acima da borda 125 pontos rep de modo que o que ele pode oferecer a recompensa merecida para o meu grande esforço ...
Hauke Laging
2
Sua resposta me fez pensar onde tty fica o nome do PTY ou TTY. Corri strace -o spork ttypara descobrir que ele faz um link de leitura em um arquivo / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 é ótimo que / proc possa ser usado para fazer coisas tão bacanas, mas o que os Unixes anteriores, sem um sistema de arquivos / proc flexível, fizeram para obter o nome tty?
Bruce Ediger
Você poderia simplesmente explicar o que esse comando é, o que ele faz e o que mais você pode fazer com ele e whoooosh, seria uma resposta melhor.
Bobby
@Bobby Cada resposta pode ser melhorada. O interlocutor resolveu seu problema após dois minutos; IMHO não é tão ruim. Sério, não tenho idéia do que mais você pode fazer tty. O que ele faz é exatamente do que se trata a questão. Eu nem entendo a diferença entre "o que esse comando é" e "o que ele faz". O que "é" um comando? Mas, ei, eu não quero votos por nada. Se você escrever uma resposta claramente melhor (que a minha pode ter impedido), darei uma recompensa de 50 representantes por isso (o mais rápido possível, ou seja, em dois dias).
Hauke ​​Laging
3

Re: "Você poderia simplesmente explicar o que esse comando é, o que ele faz e o que mais você pode fazer com ele e whoooosh, seria uma resposta melhor. - Bobby"

O nome Unix do terminal atual (ou console, como costumamos chamá-lo às vezes) é: / dev / tty, que pode ser usado para criar facilmente um novo arquivo de várias linhas no prompt de comando, assim: cp / dev / tty README.md (pressionar, em seguida, coloca o cursor em uma nova linha em branco onde é possível inserir texto, pressionar retorno novamente, inserir uma segunda linha, etc. e você criou um arquivo de várias linhas com um único comando).

user120016
fonte
O "nome" tty é derivado do TeleType (o dispositivo terminal original), que também explica por que ele está no diretório / dev.
user120016