windowsのエクスプローラからwsl2で起動中のOSのディレクトリへアクセスする。
エクスプローラを立ち上げアドレス欄に\\wsl$と入力すると、起動中のディストリビューションのファイルシステムがフォルダとして見えて、アクセスできる。
**利用ケース:**wsl内のファイルを直接windowsのアプリで開きたい場合など。
以下は、CentOS8を2VM、Kali Linuxを1VM、Ubuntu-18.04を1VM起動しているときにエクスプローラーで開いた時のスクリーンショット
windowsからwsl2のコマンドを実行する。
コマンドプロンプトかpowershellからwslコマンドに-eオプションで実行する。
以下、コマンドプロンプトからwslコマンドを実行、-dオプションでCentOS8ディストリビューションを選択し、/etc/os-releaseを標準出力した場合。
C:\Users\uchi>wsl -d CentOS8 -e cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
wslがインストールされているディレクトリへアクセスする。
microsoft storeからインストールしたりwslコマンドでインストールしたwsl用のファイル類は、
%userprofile%\AppData\Local\Packages
という隠しフォルダにインストールされます。
エクスプローラのアドレス欄に入力してアクセス可能です。
linuxからwindowsのフォルダにアクセスする
今度はwslで起動したlinuxからのコマンドになります。
linuxから見た場合、windowsのシステムドライブは/mnt/の下にマウントされて見えます。
uchi@CP747755-01:~$ ls -l /mnt
合計 0
drwxrwxrwx 1 uchi uch 512 3月 23 09:05 c
drwxrwxrwt 2 root root 40 3月 25 05:48 wsl
windowsとlinux相互にディレクトリが参照されているので、OS間のファイルの移動やコピーも簡単にできますね。
linux上で今いるディレクトリをwindowsエクスプローラーで起動する。
wslのlinuxからはwindowsのコマンドを実行できますので、linuxからexplorerを起動することで、
windowsのフォルダで今いるディレクトリを表示することも可能です。
uchi@CP747755-01:/home$ explorer.exe .
#同様にlinux上から好きなwindowsコマンドを実行できる。
通常のlinuxと同様に、環境変数PATHが通っていればそのままコマンドを実行できるし、
通ってなければフルパス指定でそのコマンドを実行できる。
例:linux上から
/mnt/c/Windows/System32/mspaint.exe
でpaintが起動.
#まとめ
やりたいこと | windows から linux | linux から windows |
---|---|---|
フォルダを参照したい | エクスプローラに\\wsl$を入力 | explorer.exe . |
コマンドを実行したい | wsl -e 'linux上のコマンド' | 対象exeをフルパスで実行 |
これらを組合わせれば、cronからlinuxコマンドの実行に加えてwindowsアプリの実行を組合わせたり、
windowsのタスクスケジューラーからlinuxのコマンドを実行したりと、linux,windows両方の
アプリケーション実行を組合わせられるので、可能性が無限大に広がります。