Wie überprüfe ich, welches Terminal ich verwende?

13

Ich habe Ubuntu auf meinem Rechner und ich habe einen tollen Fenstermanager drauf. Wie überprüfe ich, welches Terminal ich betreibe? Gibt es einen Befehl dafür?

    
user4943481 23.06.2015, 21:26
quelle

6 Antworten

11

Die kurze Version (thx @Serg )

cat /etc/alternatives/x-terminal-emulator

Die lange Version

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

und suchen Sie nach dem * in der Ausgabe

;)

Beispielausgabe

There are 7 alternatives which provide 'x-terminal-emulator’.
Selection Alternative
———————————————–
    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:

Oder, dank @muru , hier ist detailliertere Ausgabe

$ 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'.
    
A.B. 23.06.2015 21:54
quelle
8

Wenn Sie das Terminal-Programm, das Sie verwenden, wissen möchten, verwenden Sie dies:

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

Führen Sie dies unmittelbar nach dem Öffnen des Terminals (Shell) aus, ohne eine weitere Shell-Instanz zu erstellen .

Wenn Sie das Terminalprogramm öffnen, erzeugt es im Grunde ein Kindprogramm, eine Shell. Das übergeordnete Element der erzeugten Shell ist also das Terminal selbst. Mit anderen Worten, die PPID der Shell ist die PID des Terminalprogramms.

Hier finden wir die Eltern-Prozess-ID (PPID) der Shell ( bash ) nach ps -o 'ppid=' -p $$ , welche die Prozess-ID des Terminal-Programms ist.

Dann finden wir den Prozessnamen von der PID:

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

Es ist im Grunde eine Einlage von:

$ ps -o 'ppid=' -p $$
 2268

$ ps -o 'cmd=' -p 2268
gnome-terminal
    
heemayl 23.06.2015 22:08
quelle
8

Wenn Sie wissen wollen, welche Shell:

echo $SHELL

Sie können auch ps aux | grep $(echo $$ ) für denselben Zweck verwenden.

Wenn Sie Dateiname oder Gerätenamen wissen möchten, der mit stdin verbunden ist. (meistens nützlich in tty), führe tty command

aus

Viele Terminals scheinen sich als xterm-kompatibel zu maskieren, was von echo $TERM oder echo $COLORTERM gemeldet wird. Virtuelle Terminals sind schwieriger, wie Sie sehen können.

Was wir tun können, ist xprop ausführen, klicken Sie auf das gewünschte Fenster, grep seine PID, und finden Sie heraus, wie der Name des Prozesses pid entspricht. Oder mit anderen Worten:

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

Oder noch einfacher:

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

    
Sergiy Kolodyazhnyy 23.06.2015 21:55
quelle
3

Wenn Sie nur den Namen des Terminalprogramms wollen, finden Sie es höchstwahrscheinlich unter Hilfe & gt; Über.

    
thesdog 23.06.2015 22:07
quelle
2

Geben Sie printenv aus dem Terminalfenster ein, um alle Variablen der geöffneten Sitzung anzuzeigen.

Geben Sie echo $COLORTERM aus dem Terminalfenster ein. HINWEIS: Dies funktioniert nicht mit allen Terminals, einer wie sakura meldet dies nicht zurück.

root@terrance-Linux:~# echo $COLORTERM
gnome-terminal

Die folgende ist von einem aterm Terminal.

root@terrance-Linux:~$ echo $COLORTERM
rxvt-xpm
    
Terrance 23.06.2015 21:35
quelle
-1

Einfache Antwort. Funktioniert sowohl für die Konsole als auch für ssh.

Beispiel für einfaches Zeichenterminal:

ssh username@systemname
echo $TERM
dumb

sagt Ihnen, dass Sie keine GUI-Apps für diese Verbindung öffnen können

Beispiel für xterm (funktioniert auch mit PuTTY / Xming unter Windows)

ssh -Y username@systemname      -- omit this if using PuTTY --
echo $TERM
xterm

bedeutet, dass Sie GUI-Befehle wie das Öffnen des Leafpad-Editors oder des Nautilus-Dateimanagers verwenden können.

Auf der Konsole ist es dasselbe:

Open terminal window
echo $TERM
xterm
    
SDsolar 22.08.2017 23:23
quelle

Tags und Links