我学到了一个新命令,至少我认为是这样,因为这个命令 :chsh
的行为与描述的不同。
它被描述为这样工作的:
cat /etc/shells
了解安装了哪些 shell,以便您可以在其中进行选择。- 一定
echo $SHELL
要知道您正在使用哪个 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
答案1
注销并重新登录。
该chsh
命令将更新/etc/passwd
文件,但不会更改当前的shell 也不是当前 shell 中变量的值$SHELL
(它无法做到这一点)。这就是您需要重新登录的原因;您必须启动新的登录会话才能使更改生效。
答案2
使用用户模式实用程序命令在我的情况下有效。运行在ubuntu 18.04上。
- 首先,检查当前值
grep nameofuser /etc/passwd
- 更改
sudo usermod --shell /bin/bash nameofuser
- 验证一下
grep nameofuser /etc/passwd