假设我打开了一个终端并输入/执行了一些 shell 命令。
但我没有明确调用 Bash 或任何其他 shell。
默认使用什么 shell?
答案1
您在行中指定的一个/etc/passwd
(它是一条:
分隔线,并且 shell 是最后一条)。
例如我的:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
这是/bin/bash
(Ubuntu 默认设置)
您还可以使用chsh
:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
这告诉我我的外壳是什么/bin/bash
并让我改变它。
最后,echo $SHELL
将执行相同的操作:
$ echo $SHELL
/bin/bash
答案2
输入以下命令将显示终端打开的 shell:
echo $SHELL
但是,要找出你当前所处的 shell(你可能已经更改了它),请输入
ps -p $$
例如你会看到 shell 是狂欢在示例输出中
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
另一种方法是使用
echo $0
这将仅返回当前 shell 的名称。
答案3
GNU Bash 是 Ubuntu 终端中默认使用的 shell。但是,当在系统启动时执行脚本时,将使用 dash,因为 dash 就是 /bin/sh。
这是在 $SHELL 环境变量中定义的。您可以echo $SHELL
在终端中输入以下内容进行检查。
答案4
要获取当前 shell 可执行文件的文件路径,可以使用
readlink -f /proc/$$/exe
一些可能的输出是:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/victor/.linuxbrew/Cellar/zsh/5.2/bin/zsh