chsh -s /usr/bin/zsh 不工作

Kur*_*sis 33 command-line bash zsh

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

zsh 已安装(通过 apt)并且当我直接从 bash 提示符终端调用它时工作正常。但是默认情况下我无法让 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
Run Code Online (Sandbox Code Playgroud)

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

我不知道去哪里解决这个问题。 .bashrc,即使在指定 shell 之前它不会被调用?任何帮助表示赞赏。

Jan*_*ary 50

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

  • 谢谢。我已经习惯于无需重新启动就可以对 linux 进行更改,只是我没有想到。 (3认同)