web-dev-qa-db-fra.com

Comment changer le Shell par défaut en ZSH - chsh dit "Shell invalide"

J'ai installé ZSH sur un VM du mien, où je l'ai compilé à partir de la source. L'emplacement de ZSH est /usr/local/bin/zsh quand je lance chsh -s /usr/local/bin/zsh il produit chsh: /usr/local/bin/zsh is an invalid Shell. J'ai aussi essayé ça avec Sudo. Comment puis-je changer cela?

36
Zach Russell

Ajouter zsh à /etc/shells:

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

Vous pouvez maintenant utiliser chsh pour définir zsh comme Shell:

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

Voir cette documentation: Modification de votre shell de connexion

50
Biapy

Vous devez ajouter /usr/local/bin/zsh à /etc/shells.

8
Adam Lang

Tout d'abord, vérifiez si zsh est répertorié comme un shell valide par

cat /etc/shells

Si zsh n'est pas répertorié, installez-le. Par exemple, si vous utilisez apt

Sudo apt-get install zsh

Effectuez à nouveau l'étape 1 et voyez le chemin de zsh. Dans mon cas, les deux /usr/bin/zsh et /usr/zsh est listé. Comme @ Stéphane Chazelas l'a mentionné dans le commentaire, si vous aimez compiler et installer le Shell à partir de zéro, assurez-vous d'ajouter le chemin dans /etc/shells.

Changer le shell en utilisant

chsh -s /usr/bin/zsh

De page de manuel :

-s, --Shell SHELL Le nom 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 reconnectez-vous.

4
Sat Yam