Wie erhalte ich den aktuellen Terminalnamen?


17

Wie rufe ich den aktuellen Terminalnamen ab?

Ich meine den Namen, der psin der TTY-Spalte angezeigt wird, zB:

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)

Im obigen Beispiel muss ich pts/2den Namen des aktuellen Terminals abrufen, das diese Befehle ausgeführt hat.


Antworten:


26
tty

Jetzt muss ich 30 Zeichen eingeben, wobei 3 ausreichen würden ... :-)


apropos ttykönnte auch lehrreich gewesen sein (-:
Tripleee

1
@tripleee Wenn Sie das Ergebnis kennen, scheint es normalerweise einfach zu sein. Aber das war wirklich schwer. Ich sollte der Frage zustimmen, um ihn über die Grenze von 125 Wiederholungspunkten hinauszutreten, damit er das verdiente Kopfgeld für meine große Anstrengung
zahlen

2
Ihre Antwort hat mich gefragt, woher tty der Name des PTY oder TTY stammt. Ich bin gelaufen strace -o spork tty, um herauszufinden, dass es einen Readlink für eine / proc-Datei gibt: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 Es ist großartig, dass / proc für so raffinierte Dinge verwendet werden kann, aber was haben frühere Unixe ohne ein flexibles / proc-Dateisystem getan, um einen tty-Namen zu erhalten?
Bruce Ediger

Sie könnten einfach erklären, was dieser Befehl ist, was er tut und was Sie sonst noch damit machen können, und es wäre eine bessere Antwort.
Bobby

@Bobby Jede Antwort kann besser gemacht werden. Der Fragesteller hatte sein Problem nach zwei Minuten gelöst. IMHO nicht so schlimm. Im Ernst, ich habe keine Ahnung, womit Sie sonst noch etwas anfangen können tty. Was es tut, ist genau das, worum es bei der Frage geht. Ich verstehe nicht einmal den Unterschied zwischen "was dieser Befehl ist" und "was er tut". Was ist ein Befehl? Aber, hey, ich will nicht umsonst Gegenstimmen. Wenn Sie eine deutlich bessere Antwort schreiben (die meine möglicherweise verhindert hat), gebe ich Ihnen dafür eine Prämie von 50 Wiederholungen (sobald es möglich ist, dh in zwei Tagen).
Hauke ​​Laging

3

Betreff: "Sie könnten einfach erklären, was dieser Befehl ist, was er tut und was Sie sonst noch damit machen können, und es wäre eine bessere Antwort. - Bobby"

Der Unix-Name des aktuellen Terminals (oder der Konsole, wie wir es von alten Leuten manchmal auch nennen) lautet: / dev / tty, mit dem auf einfache Weise eine neue mehrzeilige Datei über die Eingabeaufforderung erstellt werden kann: cp / dev / tty README.md (Durch Drücken von wird der Cursor auf eine neue leere Zeile gesetzt, in die Sie Text eingeben, erneut die Eingabetaste drücken, eine zweite Zeile eingeben usw.). Wenn Sie mit der Eingabe der Zeilen fertig sind, führen Sie ein Control-d aus, das den Befehl cp beendet und Sie haben eine mehrzeilige Datei mit einem einzigen Befehl erstellt).


Der "Name" tty leitet sich von TeleType (dem ursprünglichen Endgerät) ab, das auch erklärt, warum es sich im Verzeichnis / dev befindet.
user120016

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.