私はWindowsを使用せず、利用可能なコピーもありません。 WSL2のデフォルトシェルが何であるかを知りたいです。 sh、Bash、ZSHが付属していますか?それともPowerShellを使用しますか? WSL2でも動作することを知っています。
これはどこにも文書化されていますか?
ベストアンサー1
短い答え
WSLのデフォルトのディストリビューションはUbuntu(Ubuntuの場合)です。
- デフォルトの対話型シェルは次のとおりです。
bash
- デフォルトの非対話型シェルは次のとおりです。
dash
したがって、「基本的な対話」を意味すると仮定して属性を渡すと、WSLのデフォルトシェルはbash
。
詳しくは
数日前にこの質問に対する答えを考えてみましたが、実際に「衝突」が保証されるわけではないようです。しかし、今日、コミュニティボットがこの質問を自動的に尋ねるように選択したので(受け取った答えがないため)、少し異なる説明をします。
まず、今のところあなたも知っていますが、WSLはさまざまなLinuxディストリビューションをサポートしています。 Windows の Microsoft Store から一部をインストールするか、他のほとんどのディストリビューションの rootfs をインポートできます。
私は本当にDebianを好み、同意します。定義シェルの場合は「デフォルト」です。いつも:
- 作成時にデフォルトでユーザーに割り当てられるデフォルトの対話型シェル(および
root
)。 /bin/sh
定義によれば、システムやその他の「POSIX」スクリプトを最も高速で最も互換性のある方法で実行するために接続されたすべてを意味するデフォルトの非対話型シェルです。
いくつかの歴史
WSL初期
WSLがあるときまず発表、それは(おそらく不親切に)「Windows上でUbuntu Bash」と呼ばれていました。その時点では、「Bash」であなたの質問に答えることは非常に明白だと思います。
WSLを起動するコマンドを使用してWSL / Ubuntuセッションを開始するのが一般的です
bash.exe
。これ会議bash
ユーザーのシェルがすでに存在していても、常にUbuntuインスタンス内のシェルから起動します/etc/passwd
。ubuntu.exe
一方、このコマンド(またはそのバリエーションの1つ)は、WSL Ubuntuディストリビューションをユーザーの/etc/passwd
シェルで開始します。最近の歴史
その後、WSLへの「デフォルトの配布」があるとは言えない灰色の領域に到達します。まず、WSLをインストール/有効にしてから、Microsoft Storeでディストリビューションを選択しました。
起動方法は
bash.exe
「部分的に使用されていません」(Microsoftのドキュメントでは「History Command」と呼ばれます)であり、新しい方法wsl.exe
に置き換えられました。いつもそうです契約違反カスタムシェルに追加されますが、すべての実行可能ファイルは/etc/passwd
親プロセスを介して(または)実行できます。wsl --execute <appname>
wsl -e
その間、「基本」ディストロがないので、「distroによって異なります」。加えて、あなたの質問に答えるのは難しいです。
今日
Windows 10バージョン21H2およびWindows 11以降、新しいWSLインストールプロセスがあります。デフォルト
wsl
のコマンドはWindowsに付属していますが、このコマンドを再度渡す必要がありますwsl --install
。するデフォルトのUbuntuをデフォルトのディストリビューションとして使用します。したがって、現時点では、UbuntuがWSLのデフォルトのディストリビューションであると言うのは妥当です。
明日
誰が知っていますか?これまで、WSLの5年の歴史から多くが明らかに変わったので、おそらくまた変わると確信しています:-)。