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?
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
Vous devez ajouter /usr/local/bin/zsh
à /etc/shells
.
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.