2021年11月02日(火) [長年日記]
■ [windows] WSLメモ
WSLについていくつかメモ。
wsl.exe
wsl.exeコマンドによりWindowsからLinuxコマンドを呼び出すことができる。
PS C:\> wsl uname Linux
wsl.exeにはディストリビューションの管理(インストールしたり停止したり)を行う機能もある。多機能なので詳しくはヘルプやドキュメントを参照のこと。
PS C:\> wsl --help
- WSL のコマンド リファレンス (docs.microsoft.com)
環境変数WSLENV
環境変数WSLENVに環境変数名を指定することで、WindowsとLinuxで環境変数を共有することができる。
$ abc=100 def=200 cmd.exe /C echo %abc% %def% %abc% %def% $ abc=100 def=200 WSLENV=abc cmd.exe /C echo %abc% %def% 100 %def% $ abc=100 def=200 WSLENV=abc:def cmd.exe /C echo %abc% %def% 100 200
WSLENVに指定する環境変数名にはフラグを付けられるが、/p と /l を使うと現在の自分の環境だとコアダンプしてしまう…。このissueが近い気がするけれどこれは修正済みだと思われる。
$ abc=100 def=200 WSLENV=abc/w:def cmd.exe /C echo %abc% %def% 100 200 $ abc=100 def=200 WSLENV=abc/u:def cmd.exe /C echo %abc% %def% %abc% 200 $ abc=100 def=200 WSLENV=abc/p:def cmd.exe /C echo %abc% %def% zsh: segmentation fault abc=100 def=200 WSLENV=abc/p:def cmd.exe /C echo %abc% %def% $ abc=100 def=200 WSLENV=abc/l:def cmd.exe /C echo %abc% %def% zsh: segmentation fault abc=100 def=200 WSLENV=abc/l:def cmd.exe /C echo %abc% %def%
- WSLENV を使用して Windows と WSL の間で環境変数を共有する (docs.microsoft.com)
/bin/wslpath
wslpathコマンドを使うとパスの形式をWindows用とLinux用に相互変換できる。
$ wslpath -u 'C:\abc\def' /mnt/c/abc/def $ wslpath -w /home \\wsl$\Debian\home $ wslpath -m /home //wsl$/Debian/home
- WSLのリリースノート#ビルド 17046 (docs.microsoft.com)