chsh -s / usr / bin / zsh não está funcionando

24

Estou tentando alterar permanentemente meu shell para zsh usando o chshcomando, mas não está funcionando.

O zsh está instalado (via apt) e funciona bem quando eu o invoco diretamente de um terminal do prompt do bash. Mas não consigo fazer o zsh carregar nos terminais por padrão, e o chsh está fazendo algo estranho:

$ 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

Parece que o chsh conseguiu alterar corretamente o arquivo / etc / passwd, mas não a variável env $ SHELL. Como tal, novos terminais sempre iniciam no bash e não no zsh.

Não tenho certeza de onde procurar para solucionar isso. .bashrc, mesmo que não seja chamado até que o shell seja especificado? Qualquer ajuda apreciada.

Kurtosis
fonte
1
Você não pode alterar o shell depois de se conectar novamente ao sistema?
vine_user
Verifique esta resposta .
Pablo A

Respostas:

34

Você precisa sair novamente para que essas alterações entrem em vigor. O shell definido no arquivo / etc / passwd é o seu shell de login :-) Portanto, você precisa fazer o login para isso.

janeiro
fonte
2
Obrigado. Estou tão acostumado a fazer alterações no linux sem reiniciar, isso simplesmente não me ocorreu.
Kurtosis 03/10/12
Eu tive que realmente fazer uma reinicialização para que ela surtasse efeito - eu acho que de alguma forma estava me reconectando a uma sessão de shell existente.
22816 Chris Kimpton
Enquanto estiver usando uma conexão ssh, mesmo se você sair, o servidor pode não fechar a conexão e o shell durante todo o processo. Portanto, você pode precisar matar os processos (ssh e sh) que pertencem ao seu usuário. (Eu tive esse problema e foi fácil encontrar a solução, mas ainda assim, eu tinha que vir a este post para ver que eu tinha que sair.)
John Hamilton