Question Comment changer le Shell de connexion sur Mac OS X de bash à zsh?


J'essaie de modifier le shell de connexion de Mac OS X à partir de bash à zsh. je vois c'est possible sous Mac OS X Leopard, mais pour OS X Lion je ne peux pas trouver un moyen. J'espère vraiment qu'il est possible de changer le shell de connexion de bash à autre chose. Je ne sais pas exactement où chercher.


79
2017-11-28 21:34


origine


Après avoir changé le shell en zsh, je devais toujours lancer zsh manuellement. Se déconnecter n'a pas aidé. J'ai ensuite changé zsh vers le shell de connexion le plus haut. Déconnecté et voilà.
Si rien d'autre, vous pouvez toujours modifier le fichier .bashrc pour trouver et exécuter zsh. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi. Lorsque vous modifiez les scripts de démarrage du shell, assurez-vous de garder un shell en cours d'exécution et de démarrer un nouveau dans une autre fenêtre. Si vous le détruisez, vous avez toujours un endroit facile à réparer. - Dan Pritts


Réponses:


Vous pouvez modifier le shell utilisateur à l'aide de la commande suivante:

chsh -s /bin/zsh

Remarque: pour le modifier pour un shell non standard, assurez-vous que son chemin a bien été ajouté à /etc/shells fichier.


88
2017-11-28 21:38



J'ai installé une nouvelle version de zsh avec Homebrew, qui a mis zsh dans /usr/local/bin/zsh. Malheureusement, chsh ne le permet pas, en disant chsh: /usr/local/bin/zsh: non-standard shell. La réponse de Daniel Beck est une solution adaptée dans ce cas. - adam_0
Si vous rencontrez des problèmes avec des shells non standard, je pense que vous devriez pouvoir ajouter /usr/local/bin/zsh à /etc/shells et cela devrait résoudre ce problème. - Mike Meyers
Les informations d'installation de homebrew zsh vous recommandent réellement de l'ajouter à / etc / shells: ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells. - George
Ne fonctionne pas parfois. La réponse de @frank le garantit - oliverbarnes
@Awesome_girl Par défaut, /etc/shells est possédé et accessible en écriture uniquement par root (le superutilisateur). Vous pourriez, par exemple, utiliser sudo vi /etc/shells utiliser sudo (super tuser faire) pour exécuter le vi éditeur à modifier /etc/shells. Je viens de tester mon système et j'ai confirmé qu'il n'est PAS protégé par la protection de l'intégrité du système. Vous devriez donc pouvoir le modifier en tant que root sans passer par des obstacles pour désactiver SIP. - Spiff


Curieusement, la même méthode que vous liez dans votre question encore fonctionne dans OS X Lion via Sierra (10.12). La seule différence: le volet de préférences est nommé Utilisateurs et groupes au lieu de Comptes.

  1. Ouvrez "Préférences Système" → "Utilisateurs et groupes".
  2. À moins que l'icône de verrouillage ne soit déjà déverrouillée, cliquez sur l'icône du verrou et authentifiez-vous.
  3. Cliquez sur un utilisateur dans la liste des noms d'utilisateur   (maintenez la Contrôle tout en cliquant sur le bouton ou en cliquant avec le bouton droit de la souris sur une souris à deux boutons droite).
  4. Dans le menu contextuel, choisissez "Options avancées ...".
  5. Choisissez "Login shell" dans la feuille qui apparaît.

La note en haut de l'écran "Options avancées"   prétend que vous devez redémarrer pour que le changement prenne effet,   mais il vous suffit de vous déconnecter et de vous reconnecter.

enter image description here


46
2017-12-01 17:21



Confirmé que cela fonctionne dans Mountain Lion, ainsi que de travailler avec des "shells non standard" que vous pourriez installer vous-même (ou installer Homebrew). - adam_0
Confirmé travaillant toujours dans 10.10 Yosemite. - ecnepsnai
Faites un clic droit sur le nom d'utilisateur pour faire apparaître le menu contenant les "options avancées". Cela m'a pris quelques minutes pour trouver. - pdwalker
Pourquoi forcer quelqu'un à quitter le site pour recueillir toutes les informations avant de pouvoir répondre? D'où le commentaire au cas où quelqu'un d'autre supposerait que la réponse est ici plutôt qu'ici et là. - pdwalker
@jvriesem En fait, c'est le cas. Je suppose que vous avez sauté l'étape 2. - Daniel Beck♦


Ou:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)

10
2017-11-25 09:52



Pouvez-vous expliquer pourquoi cela répond à la question? - ChrisF
Assurez-vous de lancer cette après  brew install zsh. - mmell
Veillez également à ce que le chemin de zsh installé via homebrew soit différent. Je le fais comme: sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh) - metakermit
ATTENTION: Cela va casser votre shell si vous le copiez / collez sans vérifier d'abord le chemin de zsh. Faites ce que metakermit a dit à la place. - radixhound


Si quelqu'un se posait le même problème sur MacOS Sierra et la commande suivante me permettait de changer de shell sans problème:

chpass -s /usr/local/bin/zsh

1
2017-11-25 07:02



Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. S'il vous plaît ne pas poster une réponse à moins que vous ayez réellement quelque chose de nouveau à contribuer. "chfn et chsh sont des synonymes pour chpass." - DavidPostill♦