Comment obtenir le nom actuel du terminal?

17

Comment récupérer le nom du terminal actuel?

Je veux dire le nom qui psapparaît dans la colonne ATS, par exemple:

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)

Dans l'exemple ci-dessus, j'ai besoin de récupérer pts/2qui est probablement le nom du terminal actuel qui a exécuté ces commandes.

Dor
la source
connexes: unix.stackexchange.com/questions/270272/…
Ciro Santilli 新疆 新疆 中心 法轮功 六四 六四

Réponses:

26
tty

Maintenant, je dois entrer 30 caractères où 3 auraient suffi ... :-)

Hauke ​​Laging
la source
apropos ttypourrait aussi avoir été instructif (-:
tripleee
1
@tripleee Si vous connaissez le résultat, il semble généralement facile. Mais c'était vraiment difficile. Je devrais voter pour la question afin de lui donner un coup de pied au-dessus de la frontière des 125 points de rep afin qu'il puisse offrir la générosité méritée pour mon grand effort ...
Hauke ​​Laging
2
Votre réponse m'a amené à me demander d' tty vient le nom du PTY ou du TTY. J'ai couru strace -o spork ttypour découvrir qu'il faisait un lien de lecture sur un fichier / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 C'est génial que / proc puisse être utilisé pour faire des choses aussi astucieuses, mais qu'est-ce que les Unixes précédents, sans système de fichiers / proc flexible, faisaient pour obtenir le nom tty?
Bruce Ediger
Vous pourriez simplement expliquer ce qu'est cette commande, ce qu'elle fait et ce que vous pouvez faire d'autre avec elle et whoooosh, ce serait une meilleure réponse.
Bobby
@Bobby Chaque réponse peut être améliorée. L'interrogateur a résolu son problème après deux minutes; pas si mal à mon humble avis. Sérieusement, je n'ai aucune idée de ce que vous pouvez faire d'autre tty. Ce qu'il fait, c'est exactement de quoi il s'agit. Je ne comprends même pas la différence entre "ce qu'est cette commande" et "ce qu'elle fait". Qu'est-ce qu'une commande? Mais bon, je ne veux pas de votes positifs pour rien. Si vous écrivez une réponse clairement meilleure (que la mienne a peut-être empêchée), je donnerai une prime de 50 représentants pour cela (dès que c'est possible, c'est-à-dire dans deux jours).
Hauke ​​Laging
3

Re: "Vous pourriez simplement expliquer ce qu'est cette commande, ce qu'elle fait et ce que vous pouvez faire d'autre avec elle et whoooosh, ce serait une meilleure réponse. - Bobby"

Le nom Unix du terminal actuel (ou console, comme nous les appelons parfois les anciens) est: / dev / tty qui, peut être utilisé pour créer facilement un nouveau fichier multi-lignes à partir de l'invite de commande: cp / dev / tty README.md (frapper place ensuite le curseur sur une nouvelle ligne vierge où vous pouvez saisir du texte, appuyez de nouveau sur Entrée, entrez une deuxième ligne, etc.). et vous aurez créé un fichier multi-lignes avec une seule commande).

user120016
la source
Le "nom" tty est dérivé de TeleType (le terminal terminal) qui explique également pourquoi il se trouve dans le répertoire / dev.
user120016