Comment changer le shell par défaut en ZSH - chsh dit “shell invalide”


36

J'ai installé ZSH sur l'un de mes ordinateurs virtuels, où je l'ai compilé à partir des sources. L'emplacement de ZSH est /usr/local/bin/zshlorsque je l'exécute chsh -s /usr/local/bin/zshen sortie chsh: /usr/local/bin/zsh is an invalid shell. J'ai aussi essayé avec sudo. Comment puis-je changer cela?


duplication possible de Où puis-je changer de shell?
Mikel

6
@ Mikel, non, cette question est "je ne sais pas chsh" plutôt que " chshne fonctionne pas pour moi".
cjm

Réponses:


49

Ajoutez zsh à /etc/shells:

command -v zsh | sudo tee -a /etc/shells

Vous pouvez maintenant utiliser chsh pour définir zsh en tant que shell:

sudo chsh -s "$(command -v zsh)" "${USER}"

Voir cette documentation: Changer votre shell de connexion



3

Tout d’abord, vérifiez si zshest listé comme un shell valide par

cat /etc/shells

Si zshn'est pas répertorié, installez-le. Par exemple, si vous utilisezapt

sudo apt-get install zsh

Ne, étape 1 à nouveau et voir le chemin de zsh. Dans mon cas, les deux /usr/bin/zshet /usr/zshest répertorié. Comme @ Stéphane Chazelas mentionné dans le commentaire, si vous aimez compiler et installer le shell à partir de rien, assurez-vous d’ajouter le chemin /etc/shells.

Changer la coquille en utilisant

chsh -s /usr/bin/zsh

De la page de manuel :

-s, --shell SHELLNom du nouveau shell de connexion de l'utilisateur. Si ce champ est vide, le système sélectionne le shell de connexion par défaut.

Déconnectez-vous et connectez-vous à nouveau.


Oui, si vous installez le shell dans le cadre d’un package de système d’exploitation, celui-ci ajoute généralement le shell /etc/shells. Le point ici est que si vous compilez et installez le shell à la main, vous devez également vous ajouter le chemin /etc/shellsmanuellement.
Stéphane Chazelas

Bon point. Je pensais à un gestionnaire de paquets comme 'apt'. J'ai édité la réponse pour inclure votre point.
Sam Yam

C’est essentiellement ce que les deux autres réponses ont déjà dit.
Jeff Schaller
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.