chsh -s / usr / bin / zsh无法正常工作


24

我正在尝试使用chsh命令将我的shell永久更改为zsh ,但是它不起作用。

zsh已安装(通过apt),当我直接从bash提示终端调用zsh时,它可以正常工作。但是默认情况下我无法让zsh加载到终端中,而chsh做的事情很奇怪:

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

看来chsh已设法正确更改了/ etc / passwd,但没有更改$ SHELL env变量。因此,新终端始终以bash而不是zsh开头。

我不确定在哪里寻找解决方法。 .bashrc,即使在指定外壳之前不调用它?任何帮助表示赞赏。


1
重新登录系统后不能更改外壳程序吗?
vine_user 2012年

检查此答案
Pablo

Answers:


34

您需要再次注销才能使这些更改生效。/ etc / passwd文件中定义的shell是您的登录 shell :-)因此,您需要为此进行实际登录。


2
谢谢。我已经习惯了能够在不重启的情况下对linux进行更改,但这只是我自己没有想到的。
Kurtosis 2012年

我实际上必须进行重新引导才能生效-我想这是以某种方式将我重新连接到现有的Shell会话。
克里斯·金普顿

在使用ssh连接时,即使您确实退出,服务器也可能不会一直关闭连接和外壳。因此,您可能需要杀死属于用户的进程(ssh和sh)。(我遇到了这个问题,很容易找到解决方案,但是,我仍然必须来到此职位才能看到我必须注销。)
John Hamilton
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.