157
178

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

wsl2でよく使う、windowsとlinux間のファイル移動やコマンド実行。

Last updated at Posted at 2020-03-24

windowsのエクスプローラからwsl2で起動中のOSのディレクトリへアクセスする。

エクスプローラを立ち上げアドレス欄に\\wsl$と入力すると、起動中のディストリビューションのファイルシステムがフォルダとして見えて、アクセスできる。

**利用ケース:**wsl内のファイルを直接windowsのアプリで開きたい場合など。
以下は、CentOS8を2VM、Kali Linuxを1VM、Ubuntu-18.04を1VM起動しているときにエクスプローラーで開いた時のスクリーンショット

wsl_access_from_win.png
wsl_access_from_win2.png

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
という隠しフォルダにインストールされます。
エクスプローラのアドレス欄に入力してアクセス可能です。

wslfolder.png

wslfolder2.png

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 .

explorer.png

#同様に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両方の
アプリケーション実行を組合わせられるので、可能性が無限大に広がります。

wsl_cmd.png

157
178
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
157
178

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?