LoginSignup
13
12

More than 3 years have passed since last update.

WSLのPATHからWindows側のPATHを除外する

Last updated at Posted at 2020-01-01

参考

手順

① /etc/wsl.conf を作成または編集する。

cat << EOL | sudo tee /etc/wsl.conf
[interop]
appendWindowsPath = false
EOL

② wslを再起動する。
③ うまくいかない場合は、コマンドプロンプトから wsl --shutdown してからもう一度wslを起動する
④ そのほかの設定は https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/ などを参照。


WSL / WSL2における対話コンソール上でコマンドのタブ補完をしようとすると、もっさりとした動作で快適とはいいがたい場合があります。
もっさりの原因の一つと考えられるのが、WSLのPATH環境変数に、Windows側の実行ファイルパスが追加されてしまっていることです。

以下が私の環境(Windows10 Insiders Preview のビルド2004)でPATH環境変数を表示した例です。

$ echo $PATH
/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/Intel/iCLS Client/:/mnt/c/Program Files/Intel/iCLS Client/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Git/mingw64/bin:/mnt/c/Program Files/Git/usr/bin:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files/PuTTY/:/mnt/c/Go/bin:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/HashiCorp/Vagrant/bin:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/:/mnt/c/Program Files/nodejs/:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/c/Users/abcku/.windows-build-tools/python27/:/mnt/c/Program Files/nodejs/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/mnt/c/Users/abcku/AppData/Roaming/npm/node_modules/windows-build-tools/node_modules/.bin:/mnt/c/Users/abcku/AppData/Roaming/npm/node_modules/.bin:/mnt/c/Users/abcku/work/edex-ui/node_modules/.bin:/mnt/c/Users/abcku/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Docker Toolbox:/mnt/c/Users/abcku/AppData/Local/atom/bin:/mnt/c/Program Files/Git:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/Users/abcku/AppData/Roaming/npm:/mnt/c/Users/abcku/go/bin:/mnt/c/Users/abcku/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/MinGW/bin:/home/kotaro/.fzf/bin:/home/linuxbrew/.linuxbrew/bin

/mnt/c/ からはじまるパスが大量に含まれていることがわかります。
これにより、補完候補の探索に必要以上の時間がかかってしまっています。

WSL側からWindowsコマンドを頻繁に利用するのでなければ、Windows側のパスは不要といえます。

冒頭の手順を実施すると、以下のようにPATHが変化しました。

$ cat << EOL | sudo tee /etc/wsl.conf
> [interop]
> appendWindowsPath = false
> EOL
[sudo] password for kotaro:
[interop]
appendWindowsPath = false
$ exit
logout

C:\Users\taro3>wsl --shutdown
C:\Users\taro3>wsl
$ echo $PATH
/home/kotaro/.local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/linuxbrew/.linuxbrew/bin:/home/kotaro/.fzf/bin

よいWSLライフを!

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12