J'essaie de changer mon shell par défaut de bash à zsh dans cygwin.
chsh
n'est pas disponible sur cygwinAlors, comment pourrait-on changer le shell par défaut?
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 -
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:
Le reste devrait être explicite.
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.
C'est un hack: mettez ceci comme première ligne de votre ~/.bash_profile
:
exec zsh