Die Anwendung „Bash on Ubuntu on Windows“ startet immer, nun ja, Bash. Ich habe immer chsh
eine andere Shell als meine Login-Shell festgelegt. Wie bringe ich WSL dazu, stattdessen diese Shell zu starten?
Antwort1
Dies ist behoben inein derzeit nur für Insider verfügbarer Build, mit dem neuen wsl.exe
Befehl:
Ab Build 16188 wird bash beim Ausführen von bash.exe ohne Argumente (oder mit dem Argument ~) als Login-Shell gestartet. Dasselbe gilt für die neue Binärdatei wsl.exe (mit der Ausnahme, dass wsl die Standard-Shell Ihres Benutzers als Login-Shell startet).
Zuvor mussten Sie die Verknüpfung bearbeiten, um Befehlszeilenparameter hinzuzufügen (z. B. -c 'exec "$SHELL" -l'
):
Antwort2
Ein bisschen historischer Kontext für alle, die heutzutage versuchen, eine neue Antwort hinzuzufügen. Diese Frage wurde ursprünglich im dunklen Zeitalter der frühen WSL gestellt. Damals:
- Ubuntu/WSL war bekannt als „Bash auf Ubuntu unter Windows“
- Der Start erfolgte über den
bash.exe
Befehl - Esstetsdie Bash-Shell gestartet
Der bash.exe
Befehl wurde vor einiger Zeit verworfen und durch den wsl.exe
Befehl ersetzt, den @muru indiese Antwort.
Jetzt können Sie Ihre Standard-/Anmeldeshell in Fish (oder normalerweise jede andere Shell) ändern, indem Sie die Standardmethoden von Ubuntu verwenden, die beispielsweise indiese Antwort. Zusamenfassend:
- Stellen Sie sicher, dass die Shell in Ihrem
/etc/shells
chsh -s <path_to_shell>
- Oder typischerweise
chsh -d $(which fish)
Antwort3
Um beispielsweise fish in Ubuntu in WSL zu starten, setzen Sie Ihr Ziel auf
C:\Windows\system32\wsl.exe --distribution Ubuntu --exec fish