「Bash on Ubuntu on Windows」アプリケーションは常に bash を起動します。chsh
ログイン シェルとして別のシェルを設定していました。代わりに WSL でそのシェルを起動するにはどうすればよいでしょうか?
答え1
これは修正されました現在はInsider限定ビルド、新しいwsl.exe
コマンド:
ビルド 16188 以降、引数なしで (または ~ 引数付きで) bash.exe を実行すると、bash がログイン シェルとして起動されます。新しい wsl.exe バイナリでも同様です (ただし、wsl はユーザーの既定のシェルをログイン シェルとして起動します)。
これまでは、ショートカットを編集してコマンドライン パラメータ (など-c 'exec "$SHELL" -l'
) を追加する必要がありました。
答え2
今日、新しい回答を追加しようとしている人のために、少し歴史的背景を説明します。この質問は、もともと WSL 初期の暗黒時代に尋ねられたものです。当時は、次のとおりでした。
- Ubuntu/WSLは「Bash on Ubuntu on Windows」として知られていました。
bash.exe
コマンドによって起動されました- それいつもBashシェルを起動した
このbash.exe
コマンドはしばらく前に廃止され、wsl.exe
@muruが言及したコマンドに置き換えられました。この答え。
ここで、Ubuntuの標準メソッドを使用して、デフォルト/ログインシェルをFish(または通常は他のシェル)に変更できます。たとえば、この答え。 要するに:
- シェルが
/etc/shells
chsh -s <path_to_shell>
- あるいは典型的には、
chsh -d $(which fish)
答え3
例えば、WSLのUbuntuでfishを起動するには、ターゲットを次のように設定します。
C:\Windows\system32\wsl.exe --distribution Ubuntu --exec fish