J'ai installé le sous-système Linux pour Windows 10. Cela fonctionne bien, mais je veux changer l'environnement shell par défaut pour le sous-système.
Je l'ai fait sudo apt-get install fish
et ensuite chsh -s /usr/bin/fish
. Mais quand je démarre bash.exe
sous Windows, ça démarre toujours le bash (je pense que c'est prévisible).
Quelqu'un connaît-il des arguments pour changer ce comportement?
bash.exe
évidemment explicitement bash. Je ne connais pas le sous-système Linux dans Windows 10, mais je m'attendrais à ce qu'il y ait un moyen de démarrer un shell "Linux" sans démarrer explicitement un shell spécifique.isatty && exec fish
peut valoir la peine d'essayer lorsque vous êtes totalement à l'écart des solutions réelles.Réponses:
Vous ne pouvez pas modifier le shell par défaut en soi car le sous-système Linux est démarré via le bash.exe résidant dans le répertoire système.
Vous pouvez cependant créer un nouveau raccourci comme celui qui existe déjà pour bash et lui faire exécuter la commande
De cette façon, vous exécuterez immédiatement du poisson.
la source
%systemroot%\system32\bash.exe ~ -c /bin/zsh
d'ouvrir ZSH dans mon répertoire personnel.%userprofile%
pour démarrer le shell dans votre répertoire personnel.Depuis Fall Creators Update, vous pouvez utiliser
chsh
pour définir le shell par défaut. Cela ne fonctionne toujours pas si vous exécutez WSL à l'aide de labash.exe
commande, mais cela fonctionne si vous exécutez WSL avec laubuntu.exe
commande.De plus, depuis Fall Creators Update, nous devons installer WSL OS à partir du Windows Store .
Définir
zsh
comme shell par défaut:puis exécutez (ou redémarrez) à
ubuntu.exe
partir de l'invite de commande.la source
Ouvrez bash, exécutez
nano ~/.bashrc
et collez ceci dans:Changez simplement le shell en
fish
ou ce que vous voulez. La-x
vérification est importante si vous réinstallez jamais Bash - vous ne pourrez pas l'ouvrir après une nouvelle installation car laexec
commande échouera, puis Bash se fermera.Si cela se produit, supprimez / renommez votre
.bashrc
fichier ici:Le
-t
je crois vérifie si stdout est ouvert. Je ne sais pas pourquoi c'est important, je l'ai copié de cet article .la source