Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
91
Help us understand the problem. What is going on with this article?
@Uchitaso

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

More than 1 year has passed since last update.

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

91
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Uchitaso
意識高い系IT企業経営者、エンジニア、コンサルタントだがMacは使いこなせないし、渋谷はちょっと苦手、コーヒーアレルギーだから意識高いカフェにもほとんど行かない。 中小企業診断士、オープンソースコンサルタント、コンタクトセンターシステムコンサルタント よく触るものはAWS、Linux、c++
geekfeed
台東区にあるギークなIT企業です。受託開発/自社開発の通話録音サービス「YouWire」を展開。AWSセレクトコンサルティングパートナー認定企業/Amazon Connect推進企業/PHP,Laravel,Python,Vue.js,Node.js,AI,音声認識,感情解析が得意。フリーなIT勉強会「もくもく会」を開催中

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
91
Help us understand the problem. What is going on with this article?