如何在 Linux 上查找你正在使用的 Shell
我在 Linux 中使用哪个 Shell?这还是个问题吗?当然是。Linux 系统有几种可用的 Shell。其中一些最流行的是:
- 狂欢
- 什
- 嘚
- tcsh
在某些情况下,您可能会对此感到疑惑。
例如,如果你登录到一个你不认识的 Linux 系统,你可能会想知道默认情况下使用的是哪个 shell。如果你经常在 Linux 中更改 shell,你可能会想知道你目前正在使用哪个 shell。
让我向您展示各种 Linux 命令,以找出您正在使用哪个 shell。
了解你在 Linux 中使用的 shell
目前没有命令可以 100% 准确地为所有 shell 提供此输出。但这些命令对于大多数 shell 来说应该是准确的。
方法 1
您可以使用特殊的 shell 参数 $$。“$$”表示您正在运行的 shell 的当前实例的进程 ID。这是一个只读参数,无法修改。
如果您尝试查看进程信息,它应该会显示进程名称,即此处的 shell。
ps -p $$
输出应该是这样的:
PID TTY TIME CMD
15012 pts/0 00:00:00 zsh
方法 2
你也可以使用 $0。$0 可以是 shell 的名称,也可以是 shell 脚本的名称。当它在 shell 脚本内部使用时,它表示脚本的名称。
但是如果在没有文件名的shell中使用它,它将显示shell的名称。
echo $0
输出将仅包含 shell 的名称:
echo $0
bash
方法 3
您也可以使用pstree命令。pstree 表示进程树,它以树的形式显示所有正在运行的进程。
如果您不提供任何参数,它将显示来自 init 或 systemd 的所有进程。
但是,如果你给它一个进程 id,它就会显示所有以该进程为根的进程。换句话说,它会显示由该进程启动的所有进程。
您可以使用我们在方法 1 中看到的相同 $$ bash 参数。
pstree $$
方法 4
最后一种方法是使用 proc 目录中的文件。如果你读过关于在 Linux 中检查 CPU 信息的文章,你可能已经知道这个目录包含有关你的 Linux 系统的运行时系统信息。
您可以使用以下命令来获取您正在使用的shell:
cat /proc/$$/cmdline
输出应该会给你 shell 的名称。
额外提示:了解 shell 的版本
所以你学会了如何知道你正在使用哪个 shell。那么你正在使用的 shell 的版本呢?只需在正在运行的 shell 名称后添加 –version 即可获取 shell 的版本。
例如,如果你正在运行 zsh,你可以使用以下命令:
zsh --version
输出将为您提供版本信息:
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
我希望本快速教程能帮助您找出您正在运行的 shell。别忘了查看有关在 Linux 中更改 shell 的另一个简单技巧。
顺便问一下,你用其他方法检查你正在使用的 shell 吗?为什么不在评论部分与我们分享呢?