Answers:
在您的行中指定的那一行/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
sudo netstat -an | grep LISTEN | grep -v ^unix。我认为没有理由将其包含在bash子外壳中。
sudo bash -c "..."可以确保整个管道都由root执行。
commandA | sudo commandB | commandC,你可以做一个sudo id第一(运行id命令root,而且还获得了“ 无密码提示使用sudo的令牌持续(默认),15分钟。”
chsh则必须注销并重新登录才能看到此更改。
输入以下内容将显示终端打开的外壳:
echo $SHELL
但是,要找出您当前所处的外壳(可能已经更改了),请输入
ps -p $$
例如,您将在示例输出中看到外壳为bash
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
另一种方法是使用
echo $0
这将仅返回当前shell的名称。
echo $0
要获取当前shell可执行文件的文件路径,可以使用
readlink -f /proc/$$/exe
一些可能的输出是:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh