问题描述
我读过这个终端只是shell,而Unix提供了不同的shell类型:
-
Bourne shell(sh)
-
C shell(csh)
-
TC shell(tcsh)
-
Korn shell(ksh)
-
Bourne Again shell(bash)
问题:
-
当我打开一个终端窗口时,哪个shell默认打开?
-
如何检查安装了多少个shell?
-
如何更改从我的帐户使用的shell?
最佳解决思路
您可以在终端中键入以下命令以查看您正在使用的 shell :
echo $0
如果您使用bash(Bourne Again Shell)终端,结果将如下所示:
-bash
次佳解决思路
要找到默认环境中的shell,可以检查SHELL
环境变量的值:
echo $SHELL
要查找当前shell实例,请查找具有当前shell实例的PID的进程(shell)。
要查找当前shell实例的PID:
echo "$$"
现在找到具有PID的进程:
ps -p <PID>
把它放在一起:
ps -p "$$"
第三种解决思路
$SHELL
为您提供了默认的shell。 $0
为您提供当前的shell。
例如:我有bash作为我的默认shell,我用于我的终端应用程序。但是对于我的iTerm2应用程序,在窗口打开时使用该命令:/bin/ksh
。
所以我的$0
在iTerm2上给了我/bin/ksh
。 $SHELL
在iTerm2上给我/bin/bash
。 $0
,$SHELL
在终端上给我/bin/bash
第四种思路
要知道哪个是您的用户的默认shell,您可以运行:
echo "$SHELL"
例如,如果你使用Bash,你应该得到以下输出:
/bin/bash
如果你没有改变任何配置,它应该是Bash,因为它是Ubuntu上的默认shell。