Comment changer le shell par défaut en ZSH – chsh dit "shell non valide"

J'ai installé ZSH sur une VM du mien, où je l'ai compilé à partir de la source. L'location de ZSH est /usr/local/bin/zsh quand chsh -s /usr/local/bin/zsh il sort un chsh: /usr/local/bin/zsh is an invalid shell . J'ai aussi essayé ceci avec sudo aussi. Comment puis-je changer cela?

Ajoutez 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: Modifier votre shell de connection

Vous devez append /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 

Faites, étape 1 à nouveau et voir le path de zsh . Dans mon cas, les deux /usr/bin/zsh et /usr/zsh sont listés. Comme l'a mentionné @ Stéphane Chazelas dans le commentaire, si vous souhaitez comstackr et installer le shell à partir de rien, assurez-vous d'append le path dans /etc/shells .

Changer la shell en utilisant

 chsh -s /usr/bin/zsh 

Déconnectez-vous et reconnectez-vous.