无法使ZSH成为默认shell
我试图将ZSH设置为我的默认shell,但它仍然会恢复为bash。
我试过这段代码:
sudo chsh -s $(which zsh)
我也尝试过:
sudo chsh -s /bin/zsh
还尝试了没有sudo的命令。 关于我还需要做什么的任何想法。 从bash中运行ZSH时,它加载并正常工作,但我想将其设置为默认shell。
如果你使用sudo
,它将改变shell不是为你的工作用户而是为root 。 只是用
chsh -s $(which zsh)
没有sudo
应该工作。
最后, 退出计算机并重新登录。
我在超级用户论坛上发现了这个
打开/ etc / passwd:
sudo vi /etc/passwd
找到包含您用户名的行:
username:x:1634231:100:Your Name:/home/username:/bin/bash
并用zsh替换bash:
username:x:1634231:100:Your Name:/home/username:/bin/zsh
注销并重新登录以使更改生效。
如果zsh不是/ bin / zsh,那么chsh将不起作用。 在Ubuntu上它是/ usr / bin / zsh。 所以做chsh -s /usr/bin/zsh
或chsh -s `which zsh`
应该可行。 还需要重新登录桌面会话。
你也可以这样做:
在您喜欢的编辑器中打开您的bashrc文件
sudo nano ~/.bashrc
然后添加文件顶部下方的行
exec zsh
每次加载终端并运行zsh shell时,它都会执行命令。
奇怪的是,“接受”的答案对我来说并不适用
chsh: PAM: Authentication failure
要解决此问题,请编辑/ etc / passwd并确保它指向zsh位置。 (你可以通过运行“which zsh”找到这个)在我的情况下,我的用户名为“webmaster”看起来像这样:
webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh
我遇到了在当前用户下更改shell权限的问题但下一步帮助我(你应该为你的计算机设置正确的’zsh’文件夹):
sudo chsh -s /bin/zsh