chsh -s / usr / bin / zsh ne fonctionne pas

24

J'essaie de changer définitivement mon shell en zsh en utilisant la chshcommande, mais cela ne fonctionne pas.

zsh est installé (via apt) et fonctionne correctement lorsque je l'invoque directement à partir d'un terminal d'invite bash. Mais je ne peux pas charger zsh dans les terminaux par défaut, et chsh fait quelque chose de bizarre:

$ 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

Il semble que chsh ait réussi à modifier correctement / etc / passwd, mais pas la variable env $ SHELL. Ainsi, les nouveaux terminaux démarrent toujours en bash et non en zsh.

Je ne sais pas où chercher pour résoudre ce problème. .bashrc, même s'il n'est pas appelé tant que le shell n'est pas spécifié? Toute aide appréciée.

Kurtosis
la source
1
Ne pouvez-vous pas changer de shell après vous être reconnecté au système?
vine_user
Vérifiez cette réponse .
Pablo A

Réponses:

34

Vous devez vous déconnecter à nouveau pour que ces modifications prennent effet. Le shell défini dans le fichier / etc / passwd est votre shell de connexion :-) Vous devez donc vous connecter réellement pour cela.

janvier
la source
2
Merci. Je suis tellement habitué à pouvoir apporter des modifications à Linux sans redémarrer, cela ne m'est tout simplement pas venu à l'esprit.
Kurtosis
J'ai dû réellement faire un redémarrage pour que cela prenne effet - je suppose que c'était en quelque sorte me reconnecter à une session shell existante.
Chris Kimpton
Lorsque vous utilisez une connexion ssh, même si vous quittez, le serveur peut ne pas fermer complètement la connexion et le shell. Ainsi, vous devrez peut-être tuer les processus (ssh et sh) qui appartiennent à votre utilisateur. (J'ai eu ce problème et il était facile de trouver la solution, mais j'ai quand même dû venir à ce poste pour voir que je devais me déconnecter.)
John Hamilton