sha*_*ant 16 command-line shell ubuntu
我学到了一个新命令,至少我是这么想的,因为这个命令 : 的chsh
行为不像描述的那样。
它被描述为这样工作:
cat /etc/shells
要知道,安装了哪些外壳,因此您可以在其中进行选择。echo $SHELL
就知道了,它外壳所使用。chsh -s /path/to/shell
echo $SHELL
您是否在新 shell 中。我已经这样做了,并且在输入密码时没有收到错误消息,但我仍然在同一个 shell 中。
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)
Kus*_*nda 21
注销并重新登录。
该chsh
命令将更新/etc/passwd
文件,但它不会更改当前shell 或当前shell 中$SHELL
变量的值(它无法这样做)。这就是您需要重新登录的原因;您必须开始新的登录会话才能使更改生效。
小智 6
使用usermod实用程序命令在我的情况下有效。在 ubuntu 18.04 上运行。
grep nameofuser /etc/passwd
sudo usermod --shell /bin/bash nameofuser
grep nameofuser /etc/passwd