web-dev-qa-db-ja.com

WindowsのLinuxサブシステムのデフォルトのシェルを変更する方法

Windows 10用のLinuxサブシステムをインストールしました。問題なく動作しますが、サブシステムのデフォルトのシェル環境を変更します。

やった Sudo apt-get install fish その後 chsh -s /usr/bin/fish。しかし、私が始めるときbash.exe Windowsでは、常にbashを開始します(予測できると思います)。

この動作を変更するための引数を知っている人はいますか?

10
Envy

Linuxサブシステムは、システムディレクトリにあるbash.exeを介して起動されるため、デフォルトのシェル自体を変更することはできません。

ただし、bashの既存のショートカットのような新しいショートカットを作成して、コマンドを実行させることはできます。

%systemroot%\system32\bash -c /usr/bin/fish

このようにして、すぐに魚を走らせます。

6
Sami Kuhmonen

Fall Creators Update なので、chshを使用してデフォルトのシェルを設定できます。これは、bash.exeコマンドを使用してWSLを実行している場合はまだ機能しませんが、ubuntu.exeコマンドを使用してWSLを実行している場合は機能します。

また、Fall Creators Update以降、WSL OSは Windows Store からインストールする必要があります。

zshをデフォルトのシェルとして設定します。

chsh -s /bin/zsh

次に、コマンドプロンプトからubuntu.exeを実行(または再起動)します。

9
Mikhail

Bashを開き、nano ~/.bashrcを実行して次の場所に貼り付けます。

if [[ -t 1 && -x /usr/bin/zsh ]]; then
    exec /usr/bin/zsh
fi

シェルをfishまたは好きなものに変更するだけです。 -xチェックは、Bashを再インストールする場合に重要です。execコマンドが失敗し、Bashが終了するため、新規インストール後に開くことはできません。

その場合は、ここで.bashrcファイルを削除/名前変更してください:

C:\Users\<USERNAME>\AppData\Local\lxss\home\<USERNAME>\.bashrc

-t Ibelieveは、stdoutが開いているかどうかを確認します。なぜそれが重要なのかわからないので、 この記事 からコピーしました。

5
mpen