Come ottenere l'attuale nome del terminale?


17

Come posso recuperare il nome del terminale corrente?

Intendo il nome che psappare nella colonna TTY, ad esempio:

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)

Nell'esempio sopra, devo recuperare pts/2quale è probabilmente il nome del terminale corrente che ha eseguito quei comandi.


Risposte:


26
tty

Ora devo inserire 30 caratteri in cui 3 sarebbero stati sufficienti ... :-)


apropos ttypotrebbe anche essere stato istruttivo (-:
tripleee

1
@tripleee Se conosci il risultato ottenerlo di solito sembra facile. Ma questo è stato davvero difficile. Dovrei votare la domanda per calciarlo al di sopra del confine dei 125 punti rep in modo che possa offrire la meritata ricompensa per il mio grande sforzo ...
Hauke ​​Laging

2
La tua risposta mi ha fatto chiedermi da dove tty viene il nome del PTY o TTY. Ho corso strace -o spork ttyper scoprire che fa un link di lettura su un file / proc: readlink("/proc/self/fd/0", "/dev/pts/5"..., 4095) = 10 è bello che / proc possa essere usato per fare cose così ingegnose, ma cosa hanno fatto gli Unix precedenti, senza un filesystem flessibile / proc, per ottenere il nome tty?
Bruce Ediger,

Potresti semplicemente spiegare che cosa è quel comando, che cosa fa e cos'altro puoi farci e che cosa, sarebbe una risposta migliore.
Bobby,

@Bobby Ogni risposta può essere migliorata. L'interrogatore ha risolto il problema dopo due minuti; non così male IMHO. Seriamente, non ho idea di cos'altro puoi fare tty. Quello che fa è esattamente di cosa si tratta. Non capisco nemmeno la differenza tra "cos'è quel comando" e "cosa fa". Cosa "è" un comando? Ma, ehi, non voglio voti positivi per niente. Se scrivi una risposta chiaramente migliore (che la mia potrebbe aver impedito), darò una ricompensa di 50 ripetizioni per questo (non appena è possibile, cioè tra due giorni).
Hauke ​​Laging,

3

Ri: "Potresti semplicemente spiegare che cosa è quel comando, che cosa fa e cos'altro puoi farne e, ehi, sarebbe una risposta migliore. - Bobby"

Il nome Unix dell'attuale terminale (o console, come usiamo anche noi vecchi a volte anche per chiamarlo) è: / dev / tty, che può essere usato per creare facilmente un nuovo file multilinea dal prompt dei comandi in questo modo: cp / dev / tty README.md (premendo poi posiziona il cursore su una nuova riga vuota in cui è possibile inserire testo, premere di nuovo Invio, inserire una seconda riga, eccetera. Al termine dell'immissione delle righe, eseguire un control-d che provoca l'uscita del comando cp e avrai creato un file multilinea con un singolo comando).


Il "nome" tty deriva da TeleType (il dispositivo terminale originale) che spiega anche perché si trova nella directory / dev.
user120016

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.