J'ai installé zsh sur mon Mac. et maintenant je veux en faire le shell par défaut au lieu de Bash. Mais il semble que je rencontre l'erreur suivante:
$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell
chsh -l
sortie? (Si cela ne fonctionne pas, quel est le contenu de/etc/shells
?) Êtes-vous sûr que cela échoue et pas seulement un avertissement? Est-ce que l'ajout/usr/bin/zsh
fait que cela fonctionne?/bin/zsh
?Réponses:
3 étapes faciles:
which zsh
cela vous donne votre chemin vers zshchsh -s /bin/zsh
ou remplacez le chemin de votre zsh s'il est différentla source
/usr/bin/zsh
pour/etc/shells
résoudre le problème.La bonne réponse aurait dû résoudre votre problème:
La raison pour laquelle c'est le cas est que
chsh
n'acceptera que les shells définis dans le fichier / etc / shells, comme vous pouvez le voir en lisant le manuel pourchsh
:Pour résoudre ce problème et faire de zsh le shell par défaut, vous devez donc:
De toute évidence, je suppose que
zsh
c'est sur votre chemin ici. Cette solution fonctionnera également si, par exemple, vous choisissez d'installer la dernière versionzsh
avecbrew install zsh
.EDIT (merci pour ThisIsFlorianK pour le commentaire) :
En fonction de la configuration de votre shell, vous pouvez recevoir un message disant
/etc/shells: Permission denied
. Vous pouvez trouver des informations sur ce problème ici. Pour contourner ce problème, utilisez plutôt ce qui suit:la source
/etc/shells: Permission denied
==> Faites-le à la place:sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh
est disponible par défaut pour une raison. Bien qu'il n'y ait rien de mal en soi à cliquer sur des tas de menus pour accomplir la même chose, ce n'est pas seulement non portable et sujet aux erreurs, mais aussi trompeur en ce sens que cela cache aux utilisateurs d'où vient le changement.J'ai pu faire fonctionner cela en procédant comme suit:
echo $SHELL
la source
/usr/local/bin/zsh
. Par conséquent, vous devrez modifier/etc/shells
sous sudo et ajouter une entrée pour/usr/local/bin/zsh
avant de pouvoir sélectionner l'exécutable zsh que l'hombrew a installéSur mon MacBook professionnel, je devais faire ceci:
Ensuite, j'ai dû créer un
.bash_profile
fichier pour que mon terminal passe en z-shell à chaque fois que je l'ouvre:La dernière idée a été empruntée d'ici .
la source