在 Debian 系统中替换默认 Shell(如将默认的 bash 更换为 zsh、fish 等)可以通过以下步骤完成:
以 zsh 为例:
sudo apt update
sudo apt install zsh
安装完成后,确认其路径:
which zsh
通常输出类似:
/usr/bin/zsh
echo $SHELL
或查看 /etc/passwd:
grep $USER /etc/passwd
示例输出:
user:x:1000:1000:User:/home/user:/bin/bash
chsh(最安全、推荐)chsh -s /usr/bin/zsh
然后 注销并重新登录,或重启系统。
⚠️ 注意:必须使用 绝对路径,且路径需在
/etc/shells中。
/etc/passwd(不推荐新手)sudo vipw
找到你的用户行,将末尾的 shell 改为:
/usr/bin/zsh
保存退出后重新登录。
重新登录后执行:
echo $SHELL
或:
ps -p $$
sudo dpkg-reconfigure dash
或者修改:
sudo nano /etc/default/useradd
设置:
SHELL=/usr/bin/zsh
仅对 之后新建的用户 生效。
chsh 报错:Shell not in /etc/shells将 shell 加入合法列表:
echo /usr/bin/zsh | sudo tee -a /etc/shells
直接运行:
zsh
退出后恢复原 shell。
| Shell | 路径 |
|---|---|
| bash | /bin/bash |
| zsh | /usr/bin/zsh |
| fish | /usr/bin/fish |
| dash | /bin/dash |
如果你愿意,我也可以帮你: