如何查看我使用的是哪个终端?
我的机器上有Ubuntu,我在它上面运行了很棒的窗口管理器。 如何查看我正在运行的终端? 有命令吗?
短版本(thx @Serg )
cat /etc/alternatives/x-terminal-emulator
长版
sudo update-alternatives --config x-terminal-emulator
并在输出中查找*
;)
示例输出
There are 7 alternatives which provide `x-terminal-emulator'.
选择替代 ---------------- 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:
或者,感谢@muru ,这里有更详细的输出
$ 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'.
如果你想知道哪个shell:
echo $SHELL
你也可以做ps aux | grep $(echo $$ )
ps aux | grep $(echo $$ )
用于同样的目的。
如果您想知道连接到stdin的文件名或设备名称 。 (在tty中大多有用),运行tty
命令
许多终端似乎将自己掩盖为xterm兼容,这是由echo $TERM
或echo $COLORTERM
。 正如您所看到的,虚拟终端更加棘手。
我们可以做的是运行xprop
,单击所需的窗口,grep其pid,并找出匹配pid的进程的名称。 或者换句话说:
$ ps aux | grep $(xprop | awk -F'=' '/PID/ {print $2}') xieerqi 2124 0.6 1.7 208068 34604 ? Sl 18:47 1:49 gnome-terminal
甚至更简单:
ps -p $(xprop | awk -F'=' '/PID/ {print $2}')
如果您想了解您正在使用的终端程序,请使用:
ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$)
在打开终端(shell)之后运行它, 而不需要任何进一步的shell实例 。
当你打开终端程序时,它基本上产生了一个子程序,一个shell。 因此,生成的shell的父级是终端本身。 换句话说,shell的PPID是终端程序的PID。
这里我们通过ps -o 'ppid=' -p $$
找到shell( bash
)的父进程ID(PPID),这将是终端程序的进程ID。
然后我们从PID中找到进程名称:
$ ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$) gnome-terminal
它基本上是一个单线:
$ ps -o 'ppid=' -p $$ 2268 $ ps -o 'cmd=' -p 2268 gnome-terminal
如果您只想要终端程序的名称,您很可能会在“帮助”>“关于”下找到它。
从终端窗口键入printenv
以查看打开会话的所有变量。
从终端窗口输入echo $COLORTERM
。 注意:这不适用于所有终端,像sakura
这样的人不会报告此情况。
root@terrance-Linux:~# echo $COLORTERM gnome-terminal
下面的一个来自aterm
终端。
root@terrance-Linux:~$ echo $COLORTERM rxvt-xpm
cat /etc/alternatives/x-terminal-emulator | grep exec
样本输出:
EXEC( ‘侏儒末端’,@参数);
我的系统有答案: gnome-terminal 。
因此,在我的终端中键入gnome-terminal
现在将打开另一个相同的终端窗口。
资料来源:
- 根据AB的回答, Sergiy Kolodyazhnyy的评论。
简单的回答。 适用于控制台或ssh。
简单字符终端的示例:
ssh username@systemname echo $TERM dumb
告诉您无法在该连接上打开GUI应用程序
xterm的示例(也适用于Windows上的PuTTY / Xming)
ssh -Y username@systemname -- omit this if using PuTTY -- echo $TERM xterm
意味着您可以使用GUI命令,如打开leafpad编辑器或nautilus文件管理器。
在控制台上它是相同的:
Open terminal window echo $TERM xterm