Linux susbsystem for Windowsのデフォルトシェルを変更する方法


10

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

私はsudo apt-get install fishそれからしましたchsh -s /usr/bin/fish。しかしbash.exe、Windowsで起動すると、常にbashが起動します(予測できると思います)。

誰かがこの行動を変えるための議論を知っていますか?


起動bash.exeすると、明らかに明示的に bash を起動しています。私はWindows 10のLinuxサブシステムに精通していませんが、特定のシェルを明示的に起動せずに「Linux」シェルを起動する方法がいくつかあると思います。
CVn

魚へのインタラクティブなbash呼び出しを再ルーティングするために、bashrcまたはbashprofileの醜い版を試しましたか?のような行を追加するisatty && exec fishことは、実際のソリューションから完全に外れているときに試す価値があるかもしれません。
A.ロワゾー

回答:


6

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

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

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

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


1
私が使用%systemroot%\system32\bash.exe ~ -c /bin/zshZSHは私のホームディレクトリにオープンにします。
DavidPärsson2016

または、ショートカットの[開始]フィールドを設定%userprofile%して、ホームディレクトリでシェルを起動します。
dOxxx 2016

@konquiこれは他のシェルを壊しません。それはそれを開始するための新しいショートカットです。あなたのbashは問題なく動作します
Sami Kuhmonen 2017年

@SamiKuhmonen新しいショートカットについて何も言われていませんでした-私は今それを修正しました。
konqui 2017年

9

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

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

設定しzsh、デフォルトのシェルとして:

chsh -s /bin/zsh

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


5

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

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

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

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

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

-t私は信じている stdoutが開いている場合はチェックを。なぜそれが重要なのかわからないので、この記事からコピーしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.