chsh -s / usr / bin / zsh no funciona

24

Estoy tratando de cambiar permanentemente mi shell a zsh usando el chshcomando, pero no funciona.

zsh está instalado (a través de apt) y funciona bien cuando lo invoco directamente desde un terminal de solicitud de bash. Pero no puedo hacer que zsh se cargue en las terminales por defecto, y chsh está haciendo algo extraño:

$ 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 chsh ha logrado cambiar correctamente / etc / passwd, pero no la variable env $ SHELL. Como tal, los nuevos terminales siempre comienzan en bash y no en zsh.

No estoy seguro de dónde buscar para solucionar esto. .bashrc, aunque no se invoque hasta que se especifique el shell? Cualquier ayuda apreciada.

Curtosis
fuente
1
¿No puede cambiar el shell después de volver a iniciar sesión en el sistema?
vine_user
Mira esta respuesta .
Pablo A

Respuestas:

34

Debe volver a cerrar sesión para que estos cambios surtan efecto. El shell definido en el archivo / etc / passwd es su shell de inicio de sesión :-) Por lo tanto, debe iniciar sesión para eso.

enero
fuente
2
Gracias. Estoy tan acostumbrado a poder hacer cambios en Linux sin reiniciar, simplemente no se me ocurrió.
Kurtosis
Tuve que reiniciar para que surta efecto; supongo que de alguna manera me estaba volviendo a conectar a una sesión de shell existente.
Chris Kimpton
Mientras usa una conexión ssh, incluso si sale, el servidor puede no cerrar la conexión y el shell por completo. Por lo tanto, es posible que deba eliminar los procesos (ssh y sh) que pertenecen a su usuario. (Tuve este problema y fue fácil encontrar la solución, pero aún así, tuve que ir a esta publicación para ver que tenía que cerrar sesión.)
John Hamilton