如何查找在Linux上使用的Shell

时间:2020-03-05 15:29:39  来源:igfitidea点击:

有几种可用于Linux系统的shell。
一些最受欢迎的是:

  • bash
  • ksh
  • zsh
  • tcsh

在某些情况下,我们可能会对此感到奇怪。

例如,如果我们登录到我们不知道的Linux系统,我们可能想知道默认情况下使用的是哪个shell。
如果我们经常在Linux中更改Shell,我们可能会想知道当前正在使用哪个Shell。

找出我们在Linux中使用的shell

现在,没有命令可以为所有shell提供100%的精度输出。
但是这些命令对于大多数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 
echo 
pstree $$
bash

输出将仅具有shell程序的名称:

cat /proc/$$/cmdline

方法3

我们也可以使用pstree命令。

pstree表示进程树,它将所有正在运行的进程显示为树。

如果不提供任何参数,它将显示init或者systemd中的所有进程。

但是,如果给它一个进程ID,它将把所有的进程显示为树的根。
换句话说,它将显示该进程启动的所有进程。

我们可以使用在方法1中看到的相同的$$bash参数。

zsh --version

方法4

最后一种方法是使用proc目录中的文件。
如果我们阅读有关在Linux中检查CPU信息的文章,我们可能已经知道此目录包含有关Linux系统的运行时系统信息。

我们可以使用以下命令来获取我们正在使用的shell:

zsh 5.4.2 (x86_64-ubuntu-linux-gnu)

输出应为我们提供shell的名称。

另外提示:知道shell的版本

因此,我们学习了如何知道所使用的shell。
我们使用的Shell版本如何?
我们只需在正在运行的shell程序名称后添加–version即可获得shell程序的版本。

例如,如果我们正在运行zsh,则可以使用以下命令:

##代码##

输出将为我们提供版本信息:

##代码##