“Bash on Ubuntu on Windows”應用程式總是會啟動 bash。我曾經chsh
設定另一個 shell 作為我的登入 shell。如何讓 WSL 啟動該 shell?
答案1
這被固定在目前僅限 Insider 構建,使用新wsl.exe
指令:
從 build 16188 開始,當執行不帶參數(或帶有 ~ 參數)的 bash.exe 時,bash 將作為登入 shell 啟動。新的 wsl.exe 二進位檔案也是如此(除了 wsl 將使用者的預設 shell 作為登入 shell 啟動)。
在此之前,您必須編輯快捷方式以新增命令列參數(例如-c 'exec "$SHELL" -l'
):
答案2
對於當今試圖添加新答案的人來說,有一些歷史背景。這個問題最初是在 WSL 早期的黑暗時代提出的。那時:
- Ubuntu/WSL 被稱為“Windows 上的 Ubuntu 上的 Bash”
- 它是透過
bash.exe
命令啟動的 - 它總是啟動 Bash shell
該bash.exe
命令不久前已被棄用,並替換為wsl.exe
@muru 中提到的命令這個答案。
現在,您可以使用提到的標準 Ubuntu 方法將預設/登入 shell 變更為 Fish(或通常任何其他 shell),例如,這個答案。簡而言之:
- 確保 shell 出現在您的
/etc/shells
chsh -s <path_to_shell>
- 或者通常,
chsh -d $(which fish)
答案3
例如,要在 WSL 中的 Ubuntu 中啟動 Fish,請將目標設為
C:\Windows\system32\wsl.exe --distribution Ubuntu --exec fish