我尝试将 ZSH 设置为我的默认 shell,但是它总是恢复为 bash。
我已经尝试过这个代码:
sudo chsh -s $(which zsh)
我也尝试过:
sudo chsh -s /bin/zsh
还尝试了不使用 sudo 的这些命令。还有什么想法吗?从 bash 内部运行 ZSH 时,它会加载并正常工作,但我想将其设置为默认 shell。
答案1
只需使用chsh
:
chsh -s $(which zsh)
没有 sudo
应该可以工作。如果你使用sudo
它,它将改变 shell,而不是你的工作用户,而是根
最后,退出计算机并重新登录。
故障排除:
- 您是否安装了 zsh (ii)?
dpkg -l zsh
- 你的 shell 是否设置为 zsh?最后一个字段
grep $USER /etc/passwd
- Zsh 是一个有效的登录 shell?
grep zsh /etc/shells
答案2
我发现这个超级用户论坛
打开 /etc/passwd:
sudo vi /etc/passwd
找到包含您的用户名的行:
username:x:1634231:100:Your Name:/home/username:/bin/bash
并将 bash 替换为 zsh:
username:x:1634231:100:Your Name:/home/username:/bin/zsh
注销并重新登录以使更改生效。
答案3
您也可以这样做:
用你最喜欢的编辑器打开你的 .bashrc 文件
nano ~/.bashrc
然后在文件顶部下方添加行
exec zsh
每次加载终端并运行 zsh shell 时,它都会执行该命令。
答案4
如果 zsh 不是 /bin/zsh,则 chsh 将不起作用。在 Ubuntu 上,它是 /usr/bin/zsh。这样做chsh -s /usr/bin/zsh
应该chsh -s `which zsh`
有效。还需要重新登录桌面会话。