Jak uzyskać aktualną nazwę terminala?

17

Jak pobrać aktualną nazwę terminala?

Mam na myśli nazwę pswyświetlaną w kolumnie TTY, np .:

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)

W powyższym przykładzie muszę pobrać, pts/2która prawdopodobnie jest nazwą bieżącego terminala, który wykonał te polecenia.

Dor
źródło
powiązane: unix.stackexchange.com/questions/270272/...
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

26
tty

Teraz muszę wprowadzić 30 znaków, w których 3 wystarczyłby ... :-)

Hauke ​​Laging
źródło
apropos ttymoże też być pouczający (-:
tripleee
1
@tripleee Jeśli wiesz, że uzyskanie wyniku zwykle wydaje się łatwe. Ale to było naprawdę trudne. Powinienem głosować za tym pytaniem, aby wykopać go ponad granicę 125 punktów rep, aby mógł zaoferować zasłużoną nagrodę za mój wielki wysiłek ...
Hauke ​​Laging
2
Twoja odpowiedź sprawiła, że ​​zastanawiałem się, skąd tty pochodzi nazwa PTY lub TTY. Pobiegłem, strace -o spork ttyaby dowiedzieć się, że robi on link do odczytu w pliku / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 Wspaniale jest, że / proc może być używany do robienia takich fajnych rzeczy, ale co zrobili wcześniej Uniksowie, bez elastycznego systemu plików / proc, aby uzyskać nazwę tty?
Bruce Ediger
Możesz po prostu wyjaśnić, czym jest to polecenie, co robi i co jeszcze możesz z nim zrobić, a kto to byłby lepsza odpowiedź.
Bobby
@Bobby Każda odpowiedź może być ulepszona. Pytający rozwiązał swój problem po dwóch minutach; nie tak źle IMHO. Poważnie, nie mam pojęcia, co jeszcze możesz zrobić tty. To, co robi, jest dokładnie tym, o co chodzi. Nie dostaję nawet różnicy między „czym jest to polecenie” a „tym, co robi”. Co to jest „polecenie”? Ale hej, nie chcę głosowania za darmo. Jeśli napiszesz wyraźnie lepszą odpowiedź (której moja może zapobiec), dam ci za to 50 powtórzeń (tak szybko, jak to możliwe, tj. Za dwa dni).
Hauke ​​Laging
3

Re: „Mógłbyś po prostu wyjaśnić, czym jest to polecenie, co robi i co jeszcze możesz z nim zrobić, a kto to byłby lepsza odpowiedź. - Bobby”

Uniksowa nazwa bieżącego terminala (lub konsoli, jak to nazywamy czasami starsze osoby) to: / dev / tty, która może być użyta do łatwego utworzenia nowego pliku wieloliniowego z wiersza poleceń: cp / dev / tty README.md (naciśnięcie powoduje umieszczenie kursora w nowej pustej linii, w której można wprowadzić tekst, ponownie nacisnąć klawisz Return, wprowadzić drugą linię itp. Po zakończeniu wprowadzania linii wykonaj polecenie kontrolne d, które powoduje zamknięcie polecenia cp i utworzysz plik wieloliniowy za pomocą jednego polecenia).

użytkownik120016
źródło
Nazwa „tty” pochodzi od TeleType (oryginalne urządzenie końcowe), co również wyjaśnia, dlaczego znajduje się w katalogu / dev.
user120016