Come posso verificare quale terminale sto usando?

Ho Ubuntu sulla mia macchina e sto eseguendo il gestore di windows impressionante su di esso. Come posso verificare quale terminale sto utilizzando? C’è un comando per questo?

La versione breve (thx @Serg )

cat /etc/alternatives/x-terminal-emulator 

La versione lunga

 sudo update-alternatives --config x-terminal-emulator 

e cercare * nell’output

😉


Esempio di output

 There are 7 alternatives which provide `x-terminal-emulator'. 
  Selezione alternativa
 ----------------
     1 / usr / bin / xterm
     2 / usr / bin / uxterm
     3 / usr / bin / koi8rxterm
     4 / usr / bin / lxterm
  * + 5 /usr/bin/gnome-terminal.wrapper
     6 / usr / bin / konsole
     7 /usr/bin/xfce4-terminal.wrapper
 Press enter to keep the default[*], or type selection number: 

Oppure, grazie a @muru , ecco un output più dettagliato

 $ update-alternatives --display x-terminal-emulator x-terminal-emulator - auto mode link currently points to /usr/bin/gnome-terminal.wrapper /usr/bin/gnome-terminal.wrapper - priority 40 slave x-terminal-emulator.1.gz: /usr/share/man/man1/gnome-terminal.1.gz /usr/bin/koi8rxterm - priority 20 slave x-terminal-emulator.1.gz: /usr/share/man/man1/koi8rxterm.1.gz /usr/bin/lxterm - priority 30 slave x-terminal-emulator.1.gz: /usr/share/man/man1/lxterm.1.gz /usr/bin/mate-terminal.wrapper - priority 30 slave x-terminal-emulator.1.gz: /usr/share/man/man1/mate-terminal.1.gz /usr/bin/uxterm - priority 20 slave x-terminal-emulator.1.gz: /usr/share/man/man1/uxterm.1.gz /usr/bin/xterm - priority 20 slave x-terminal-emulator.1.gz: /usr/share/man/man1/xterm.1.gz Current 'best' version is '/usr/bin/gnome-terminal.wrapper'. 

Se vuoi sapere quale shell:

echo $SHELL

Puoi anche fare ps aux | grep $(echo $$ ) ps aux | grep $(echo $$ ) per lo stesso scopo.

Se si desidera conoscere il nome del file o del dispositivo che è collegato a stdin. (principalmente utile in tty), esegui il comando tty

Molti terminali sembrano mascherarsi come compatibili xterm, che è segnalato da echo $TERM o echo $COLORTERM . I terminali virtuali sono più difficili, come puoi vedere.

Quello che possiamo fare è eseguire xprop , fare clic sulla finestra desiderata, svuotare il suo pid e scoprire qual è il nome di quel processo che corrisponde al pid. O in altre parole:

 $ ps aux | grep $(xprop | awk -F'=' '/PID/ {print $2}') xieerqi 2124 0.6 1.7 208068 34604 ? Sl 18:47 1:49 gnome-terminal 

O ancora più semplicemente:

ps -p $(xprop | awk -F'=' '/PID/ {print $2}')

Se vuoi conoscere il programma terminale che stai utilizzando, usa questo:

 ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$) 

Esegui questo subito dopo aver aperto il terminale (shell) senza assegnare un’altra istanza di shell .

Quando apri il programma del terminale, esso genera in genere un programma figlio, una shell. Quindi il genitore della shell generata è il terminale stesso. In altre parole, il PPID della shell è il PID del programma terminale.

Qui stiamo trovando l’ID del processo genitore (PPID) della shell ( bash ) di ps -o 'ppid=' -p $$ , che sarà l’ID di processo del programma terminale.

Quindi stiamo cercando il nome del processo dal PID:

 $ ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$) gnome-terminal 

È fondamentalmente un unico rivestimento di:

 $ ps -o 'ppid=' -p $$ 2268 $ ps -o 'cmd=' -p 2268 gnome-terminal 

Se vuoi solo il nome del programma terminale, lo troverai probabilmente in Aiuto> Informazioni.

Digitare printenv dalla finestra del terminale per visualizzare tutte le variabili della sessione aperta.

Digitare echo $COLORTERM dalla finestra del terminale. NOTA: questo non funziona con tutti i terminali, uno come sakura non riporta questo indietro.

 [email protected]:~# echo $COLORTERM gnome-terminal 

quello sotto è da un terminale aterm .

 [email protected]:~$ echo $COLORTERM rxvt-xpm 
 cat /etc/alternatives/x-terminal-emulator | grep exec 

Uscita di esempio:

exec ( ‘gnome-terminal’, @ args);

C’è la risposta per il mio sistema: gnome-terminal .

Quindi, digitando gnome-terminal nel mio terminale ora apriremo un’altra finestra terminale identica.

fonti:

  • Il commento di Sergiy Kolodyazhnyy sotto la risposta di AB .

Risposta semplice Funziona sia per console che per ssh.

Esempio per terminale di carattere semplice:

 ssh [email protected] echo $TERM dumb 

ti dice che non puoi aprire app GUI su quella connessione

Esempio per xterm (funziona anche con PuTTY / Xming su Windows)

 ssh -Y [email protected] -- omit this if using PuTTY -- echo $TERM xterm 

significa che puoi usare i comandi della GUI come aprire l’editor di fogli elettronici o il gestore di file nautilus.

Sulla console è lo stesso:

 Open terminal window echo $TERM xterm