在 Debian 中替换默认 shell(即用户登录时使用的 shell),常用有以下几种方式,按推荐程度从高到低说明。
chsh(最推荐,用户级)cat /etc/shells
例如改为 zsh:
chsh -s /bin/zsh
或完整路径:
chsh -s $(which zsh)
修改后重新登录或重启终端生效。
sudo chsh -s /bin/zsh username
usermod(系统级,适合脚本)sudo usermod -s /bin/zsh username
不指定用户默认是当前用户(不推荐)。
/etc/passwd(不推荐)sudo vipw
找到对应用户行,修改最后一列:
username:x:1000:1000:User:/home/username:/bin/bash
改为:
username:x:1000:1000:User:/home/username:/bin/zsh
⚠️ 容易改错,不建议新手使用。
编辑:
sudo nano /etc/default/useradd
修改:
SHELL=/bin/zsh
仅对之后创建的用户生效。
| shell | 路径 |
|---|---|
| bash | /bin/bash |
| zsh | /bin/zsh |
| fish | /usr/bin/fish |
| sh | /bin/sh |
echo $SHELL
或
grep username /etc/passwd
如果你是想 root 用户换 shell、容器里换 shell、或 换 Debian 系统初始化 shell,可以告诉我具体场景,我可以给你更精确的做法。