web-dev-qa-db-fra.com

Créer un shell ZSH par défaut dans MacOSX

J'ai installé zsh sur mon Mac. et maintenant je veux en faire le Shell par défaut au lieu de Bash. Mais il me 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
77
Harsha M V

3 étapes faciles:

  1. which zshcela vous donne votre chemin vers zsh
  2. Ensuite chsh -s /bin/zsh _ ou remplace le chemin vers votre zsh si différent
  3. Redémarrez votre machine
73
Quentin Perez

La bonne réponse aurait dû résoudre votre problème:

chsh:/usr/bin/zsh: shell non standard

La raison en est que chsh n'acceptera que les shells définis dans le fichier/etc/shells, comme vous pouvez le constater en lisant le manuel de chsh:

chsh acceptera le chemin d'accès complet de tout fichier exécutable sur le système. Cependant, un avertissement sera émis si le shell n’est pas répertorié dans le fichier/etc/shells.

Pour résoudre ce problème et faire de zsh le shell par défaut, vous devez donc:

$ Sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)

Évidemment, je suppose que zsh est sur votre chemin ici. Cette solution fonctionnera également si, par exemple, vous choisissez d'installer le dernier zsh avec brew install zsh.

[~ # ~] éditer [~ # ~] (merci pour ThisIsFlorianK pour le commentaire) :

Selon 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 résoudre ce problème, utilisez plutôt les éléments suivants:

$ Sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
156
dangom

J'ai pu obtenir ce travail en procédant comme suit:

  1. Aller aux Préférences Système
  2. Cliquez sur "Utilisateurs et groupes"
  3. Cliquez sur le verrou pour apporter des modifications.
  4. Faites un clic droit sur l'utilisateur actuel -> Options avancées
  5. Changez le shell de connexion en/bin/zsh dans le menu déroulant.
  6. Ouvrez un nouveau terminal et vérifiez avec echo $Shell
43
Nate Jenson

Sur mon travail MacBook, je devais faire ceci:

Sudo chsh -s /usr/local/bin/zsh my_user_name

Ensuite, j'ai dû créer un .bash_profile fichier pour que mon terminal bascule vers z-Shell à chaque fois que je l’ouvre:

touch ~/.bash_profile
echo 'export Shell=$(which zsh)' >> ~/.bash_profile
echo 'exec $(which zsh) -l' >> ~/.bash_profile

La dernière idée a été empruntée d'ici .

5
sakovias