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

我尝试了以下代码:

sudo chsh -s $(which zsh)


我也尝试过:

sudo chsh -s /bin/zsh 


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

评论

对我有用的快速解答:注销然后重新登录到桌面会话对我来说很容易。

#1 楼

只需使用chsh

chsh -s $(which zsh)


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

最后,注销计算机并重新登录。

故障排除:


是否已安装zsh(ii)? dpkg -l zsh

您的shell是否设置为zsh? grep $USER /etc/passwd的最后一个字段

Zsh是有效的登录shell吗? grep zsh /etc/shells



评论


我有同样的问题,答案无法解决

–阿斯温·穆格什
13年7月21日在16:11

@AswinMurugesh检查我的答案

– Shailesh Kalamkar
2015年8月11日,下午5:30

您还可以运行sudo chsh -s / bin / zsh userName

– Micha Roon
2015年9月30日10:49在

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

– KevinO
2015年10月12日,0:38

要让zsh接管,需要在Linut Mint 19.2上重新引导。 sudo reboot完成任务。

–林丰
19/12/7在0:55

#2 楼

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

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


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

评论


使用这种方法时,您应该非常小心-与/ etc / passwd混为一谈通常不是最好的主意

–托马斯·沃德♦
16年1月7日在13:13

即使我没有使用此方法,它也帮助我验证了chsh -s`哪个zsh`的效果

– jchook
17年9月30日在0:43

#3 楼

您也可以这样做:

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

sudo nano ~/.bashrc


,然后在文件顶部下方添加一行/>
exec zsh


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

评论


并且还会破坏您所有的非交互式作业(例如scp)。

–贾库耶
16 Mar 11 '16 at 16:45

不好意思,但是更改/ etc / passwd或chsh是更好的解决方案,更可靠。

– Timo
18/12/25在11:57

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

–Stryker
19年2月11日在21:42

添加exec zsh很可能会中断您的Gnome Shell会话。

– fracca
19-10-26在10:58

这是唯一在具有活动目录的工作计算机上为我工作的命令,始终找不到我的用户名,whoami可以正常工作,但是某些命令(例如chsh)始终无法找到我的用户名

–element11
20 May 15 '18:20

#4 楼

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

sudo chsh -s /bin/zsh <myUserName>


#5 楼

如果zsh不是/ bin / zsh,则chsh将不起作用。在Ubuntu上是/ usr / bin / zsh。因此执行chsh -s /usr/bin/zshchsh -s `which zsh`应该可以。还需要重新登录到桌面会话。

评论


在我的Ubuntu VPS上是/ bin / zsh

–威廉·伊拉斯mus
2015年12月9日12:39

在我的Ubuntu上,在/ bin / zsh和/ usr / bin / zsh中都可以看到它

– blue_chip
17年4月10日在14:34

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

– wjandrea
17-10-21在0:36



#6 楼

奇怪,我收到

chsh: PAM: Authentication failure


,要解决此问题,请编辑/ etc / passwd并确保其指向zsh的位置。 (您可以通过运行“哪个zsh”找到它)对于我来说,我的用户“ webmaster”看起来像这样:

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


评论


我相信应该要求输入密码。我在先前的薄荷安装中遇到了相同的错误。目前的一个很好

–威廉·伊拉斯mus
2015年12月9日,12:40

其他人也有同样的问题,原来他们运行了chsh -s zsh,这使他们的passwd条目不正确。

– wjandrea
17-10-21在0:46

#7 楼

与chsh一样(或编辑/ etc / passwd,其功能相同),您可能需要在终端仿真器(Gnome终端,Konsole,xfce4-terminal等)中编辑设置。您的个人资料中可能会有一个登录外壳,当您打开新标签页而不是/ etc / passwd中的外壳时,将运行该外壳。
在Konqueror中,它是Settings |。 Edit Current Profile | Command