web-dev-qa-db-fra.com

Comment changer le shell par défaut dans Cygwin?

J'essaie de changer mon shell par défaut de bash à zsh dans cygwin.

  1. La commande unix normale chsh n'est pas disponible sur cygwin
  2. Le fichier etc/passwd semble ne plus être utilisé dans les versions existantes de cygwin.

Alors, comment pourrait-on changer le shell par défaut?

28
gyaani_guy

La réponse dépend de la façon dont vous démarrez Cygwin.

Si vous démarrez Cygwin avec Cygwin.bat , modifiez la dernière ligne de /Cygwin.bat (généralement C:\cygwin\ ou C:\cygwin64\).

Si vous démarrez Cygwin avec mintty , ajoutez le shell en tant que paramètre. mintty /usr/bin/zsh -

21
Steven

Si vous exécutez mintty.exe directement ou exécutez Cygwin Terminal à partir du menu Démarrer ou du bureau (raccourci vers mintty.exe), vous pouvez définir la variable d'environnement Shell dans Windows sur /usr/bin/zsh.

Sous Windows 7:

  1. Appuyez sur la touche Windows.
  2. Commencez à taper "environnement".
  3. Lorsqu'il apparaît, sélectionnez "Modifier les variables d'environnement pour votre compte".

Le reste devrait être explicite.

17
dc46and2

Copié de ma réponse sur le dépassement de capacité de la pile :


Au lieu de créer un fichier passwd, ce que Cygwin recommande de ne pas utiliser1, vous pouvez éditer /etc/nsswitch.conf . Ajoutez ou modifiez la ligne suivante:

 db_Shell: /usr/bin/fish

Le côté bas/haut de cette méthode est que, si vous avez plusieurs utilisateurs, cette modification les affecte tous. Le bon côté, c'est que c'est simple comme bonjour. Le seul problème est que vous devez redémarrer Cygwin.

Si vous utilisez mkpasswd après cette modification, il utilisera votre nouveau shell par défaut pour tous les utilisateurs autorisés à se connecter.


1 La documentation de mkpasswd dit ceci:

N'utilisez pas cette commande pour générer un fichier/etc/passwd local, sauf si vous en avez réellement besoin. Consultez le Guide de l'utilisateur Cygwin pour plus d'informations.

Je ne trouve pas vraiment de raison solide dans le guide de l'utilisateur , mis à part le fait que vous devrez régénérer le fichier/etc/passwd et/etc/groupe de fichiers si vos utilisateurs et groupes changent, ce qui, je suppose, est une raison assez décente. Je peux dire que le processus est quelque peu sujet aux erreurs pour les débutants.

15
P Daddy

C'est un hack: mettez ceci comme première ligne de votre ~/.bash_profile:

exec zsh
6
glenn jackman