如何使ZSH成为默认外壳?


124

我正在尝试将ZSH设置为默认外壳程序,但是它会一直恢复为bash。

我已经试过这段代码:

sudo chsh -s $(which zsh)

我也尝试过:

sudo chsh -s /bin/zsh 

还尝试了不使用sudo的这些命令。关于我还需要做什么的任何想法。从bash中运行ZSH时,它会加载并正常运行,但我想将其设置为默认Shell。

Answers:


217

只需使用chsh

chsh -s $(which zsh)

没有 sudo应该工作。如果您使用sudo它,将更改外壳程序,而不是您的工作用户,而是root用户

最后,退出计算机并重新登录

故障排除:


17
我有同样的问题,答案不能解决
Aswin Murugesh 2013年

@AswinMurugesh检查我的答案
Shailesh Kalamkar

9
您还可以运行sudo chsh -s / bin / zsh userName
Micha Roon 2015年

15
注意:必须重新启动系统才能生效。
KevinO 2015年

不,它没有用。
哈哈TTpro '18

40

我在超级用户论坛上找到了这个

打开/ 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

注销并重新登录,以使更改生效。


11
你应该非常小心,这种方法-它通常不是去与周围碴最好的主意/etc/passwd
托马斯·沃德

即使我没有使用此方法,它也帮助我验证了chsh -s `which zsh`
jchook

哈耶,这让我的用户全死了。在无法重新登录。
马克·卡彭特JR

6

您也可以这样做:

在您喜欢的编辑器中打开您的bashrc文件

sudo nano ~/.bashrc

然后在文件顶部下方添加行

exec zsh

每次加载终端并运行zsh shell时,它将执行命令。


13
并且还会打断您所有的非交互式作业(scp例如)。
雅库耶

很抱歉的downvote,但改变/etc/passwd或者chsh是更好的解决方案,更可靠。
蒂莫

谢谢,做到了。@Timo我在/ etc / passwd和或chsh上进行了更改,但是我的默认设置一直回到bash。我按照发布的响应添加了exec zsh,它可以正常工作。
斯特赖克

3

如果zsh不是/ bin / zsh,则chsh将不起作用。在Ubuntu上,它是/ usr / bin / zsh。这样做chsh -s /usr/bin/zshchsh -s `which zsh`应该起作用。还需要重新登录到桌面会话。


在我的Ubuntu VPS上是/ bin / zsh
Wilhelm Erasmus,

在我的Ubuntu上,我同时看到了它/bin/zsh/usr/bin/zsh
blue_chip '17

2
在我的(14.04,主仓库中有zsh)上,有两个zsh,它们都是两层符号链接:/ usr / bin / zsh-> / etc / alternatives / zsh-usrbin-> / bin / zsh5和/ bin / zsh-> / etc / alternatives / zsh-> / bin / zsh5
wjandrea

1

我在更改当前用户下的Shell的权限时遇到问题,但是接下来可以帮助我(您应为计算机设置正确的“ zsh”文件夹):

sudo chsh -s /bin/zsh <myUserName>

0

奇怪,当我得到时,“已接受”的答案对我不起作用

chsh: PAM: Authentication failure

要解决此问题,请编辑/ etc / passwd并确保其指向zsh位置。(您可以通过运行“哪个zsh”找到它)在我的情况下,我的用户“ webmaster”如下所示:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

我相信应该要求输入密码。我在先前的薄荷安装中遇到了相同的错误。尽管目前的情况很好
威廉·伊拉斯

其他人也有同样的问题,结果证明他们已经跑了chsh -s zsh,这使得他们的passwd条目不正确。
wjandrea

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.