如何找到你在 Linux 上使用的 Shell

我在 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? 为什么不在评论部分与我们分享呢?