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