全3880文字
PR

Windows 10ではLinux実行環境の「WSL」(Windows Subsystem for Linux)が標準搭載され、「本物のLinux」がすぐに使えるようになりました。最新版の「WSL2」について、導入方法や基本的な使い方などを解説します。

 Windowsの中で本物のLinuxを動かせるWSLを使うことで、Windowsを単体で使うときよりも利便性が高まり、実現できることの幅も大きく広がります。具体的にどんなことができるのか、今回はいろいろな活用法を見ていきましょう。

 WSLでUbuntuを起動すると、Linuxのシェル(Bash)が起動します。このシェルを使って通常のLinuxと同じようにコマンドを実行できますが、それに加えてWSLならではの操作もできるようになります。それは、Linux環境とWindows環境の相互連携です。Linux環境からは、通常のコマンドと同じようにWindowsのアプリを起動できます。例えば、次のように実行すると、Linux側からWindowsの電卓アプリを起動できます(図1)。

[画像のクリックで拡大表示]
図1 Linux側からWindowsの電卓を起動する
図1 Linux側からWindowsの電卓を起動する
[画像のクリックで拡大表示]

 LinuxコマンドからWindowsのコマンドに対して、パイプなどでデータを受け渡すことも可能です。次のように実行してみてください。

[画像のクリックで拡大表示]

 この例では「ls/bin」コマンドの出力をWindowsのクリップボード(clip.exe)に渡しています。Windows側では、クリップボードに格納されたコマンド実行結果のデータをメモ帳アプリなど任意のアプリに貼り付けられます(図2)。

図2 Linuxコマンドの出力をWindowsのクリップボードに渡せる
図2 Linuxコマンドの出力をWindowsのクリップボードに渡せる
[画像のクリックで拡大表示]

 反対に、WindowsのコマンドプロンプトなどからLinuxのコマンドを実行することも可能です。次のようにwslコマンドに「-e」オプションを付けた後に、実行したいLinuxのコマンドを指定します(図3)。

[画像のクリックで拡大表示]
図3 WindowsからLinuxのコマンドを実行する
図3 WindowsからLinuxのコマンドを実行する
[画像のクリックで拡大表示]

ディレクトリーへの相互アクセス

 Windowsのファイルシステムと、WSLのLinux環境のファイルシステムは分かれています。WSL2の場合、一般的な仮想マシンと同じように、Windowsのファイルとして仮想ディスク(VHD形式)が用意され、その中にLinuxのファイルシステムが作られます。ただし、相互にファイルにアクセスできるように工夫されています。

 Linux側からは、/mnt/cディレクトリー経由でWindowsのCドライブにアクセスできます(図4)。通常のLinuxで外部ドライブをマウントするときと同じ方式です*1

図4 Linux側からWindowsのディレクトリーにアクセスする
図4 Linux側からWindowsのディレクトリーにアクセスする
[画像のクリックで拡大表示]

 逆に、Windows側からLinuxのディレクトリーに対しては、WSLのLinux環境が稼働している間であれば、エクスプローラーやコマンドプロンプト、PowerShellなどで「\\wsl$\ディストリビューション名」を指定することでアクセスできます(図5*2

図5 Windows側からLinuxのディレクトリーにアクセスする
図5 Windows側からLinuxのディレクトリーにアクセスする
[画像のクリックで拡大表示]

 前述したLinux側からのWindowsアプリの起動を、Windows側からのLinuxのディレクトリーへのアクセスと組み合わせることも可能です。例えば次のようにコマンドを実行すると、Linux側のカレントディレクトリーをWindowsのエクスプローラーで開けます(図6)。

[画像のクリックで拡大表示]
図6 WSLのカレントディレクトリーをエクスプローラーで開く
図6 WSLのカレントディレクトリーをエクスプローラーで開く
[画像のクリックで拡大表示]
*1 WindowsからwslコマンドでLinux環境に入るとき、デフォルトではWindowsのカレントディレクトリーが引き継がれます。
*2 こうしたLinuxとWindowsのディレクトリー間で相互アクセスを実現するために、「9P」というファイル共有プロトコルが使われています。