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