WSL(Windows Subsystem for Linux)の使い方
Windows で開発している際、動作確認のために Linux のプログラムやコマンドを動かしたいなと思うことがあります。 そんな場合に便利なのが WSL(Windows Subsystem for Linux)です。
WSL(Windows Subsystem for Linux)とは?
WSL(Windows Subsystem for Linux)は、Linux のほとんどのコマンドラインツール、ユーティリティ、アプリケーションなどが、Windows 上で仮想マシンのオーバーヘッドなしで直接動いちゃうという、すんごい機能です。 Windows 上に、Ubuntu や Debian などの Linux ディストリビューションをインストールして、直接動かすことができると言った方が分かりやすいでしょうか。
昔は Windows 上で Linux のプログラムやコマンドの動作確認をするのは一苦労だったのですが、WSL があればそんな苦労とはおさらばです。 なんたって Linux がそのまま動いてるのですから。
WSL の有効化
さっそくですが有効化していきましょう。
「スタートメニュー > Windows システム ツール > コントロール パネル > プログラム > Windows の機能の有効化または無効化」で、「Windows の機能」のダイアログを開きます。 「Windows の機能」のダイアログが開いたら、「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」の項目にチェックを付けて有効化します。 Windows の再起動が必要になるので再起動します。
WSL のヘルプを確認する
WSL のヘルプを確認するには、--help
オプションを使用します。
どんなオプションが使用できるのか確認してみましょう。
wsl --help
WSL 2 を既定のバージョンとして設定する
WSL には WSL 1 と WSL 2 の2つのバージョンがあり、各ディストリビューションごとにどちらのバージョンで動作させるか指定することができます。 ディストリビューションをインストールする際に、WSL 1 と WSL 2 のどちらのバージョンとしてインストールするかを、既定のバージョンで設定することができます。
現在の状態を確認する
現在の既定のバージョンが WSL 1 と WSL 2のどちらになっているかは、--status
オプションで確認できます。
wsl --status
既定のバージョン: 1 Linux 用 Windows サブシステムの最終更新日: 2021/08/21 WSL の自動更新が有効になっています。 カーネル バージョン: 5.10.16
既定のバージョンを設定する
基本的には WSL 2 の方が WSL 1 よりも優れていると思われますので、既定のバージョンが WSL 1 になっている場合は、WSL 2 に設定しましょう。
既定のバージョンを設定するには、--set-default-version
オプションを使用します。
wsl --set-default-version <Version>
wsl --set-default-version 2
ディストリビューションのインストール
ディストリビューションをインストールするには、Microsoft Store アプリからインストールする方法もありますが、ここではコマンドでインストールする方法を紹介します。 コマンドでやった方が早くて便利かと思います。 Microsoft Store アプリからインストールする方法は こちら を参照してください。
インストールできる有効なディストリビューションの一覧を表示する
インストールできる有効なディストリビューションの一覧を表示するには、-l
オプションに -o
オプションを付けて使用します。
このコマンドで表示されたディストリビューションをインストールすることができます。
wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。 'wsl --install -d <Distro>' を使用してインストールします。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling openSUSE-42 openSUSE Leap 42 SLES-12 SUSE Linux Enterprise Server v12 Ubuntu-16.04 Ubuntu 16.04 LTS Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS
ディストリビューションをインストールする
ディストリビューションをインストールするには、--install
オプションに -d
オプションを付けて、ディストリビューション名を指定します。
wsl --install -d <Distro>
wsl --install -d Ubuntu-20.04
新しくインストールしたディストリビューションを初めて起動すると、コンソールウィンドウが開き、ファイルが圧縮解除されて PC に格納されるまで 1、2 分待つように求められます。 今後のすべての起動には、1 秒もかかりません。 次に、ディストリビューション用のユーザーアカウントとパスワードを作成する必要があります。
現在インストールされているディストリビューションの一覧を表示する
現在インストールされているディストリビューションの一覧を表示するには、-l
オプションを使用します。
wsl -l
Linux 用 Windows サブシステム ディストリビューション: Ubuntu-16.04 (既定) Ubuntu-18.04 Ubuntu-20.04
各ディストリビューションの稼働状況や、WSL のバージョン等を知りたい場合は、-l
オプションに -v
オプションを付けて使用します。
wsl -l -v
NAME STATE VERSION * Ubuntu-16.04 Running 2 Ubuntu-18.04 Stopped 2 Ubuntu-20.04 Stopped 2
WSL のバージョンを変更する
ディストリビューションをインストールした後に、WSL のバージョンを変更したいと思うかもしれません。
基本的には WSL 2 の方が WSL 1 よりも優れていると思われますが、例外的に WSL 1 を使用した方がパフォーマンスが良い場合もあるようです。
WSL のバージョンを変更したい場合は、--set-version
オプションを使用します。
この処理には数分かかることがあります。
wsl --set-version <Distro> <Version>
wsl --set-version Ubuntu-20.04 1
ディストリビューションを起動する
起動する方法はいくつかあります。
どの方法を使用すべきかは、作業内容や好みによっても異なるでしょう。
ちなみに、起動後にウィンドウを閉じたり、exit
コマンドを入力したりすると終了します。
スタートメニューから起動する
ディストリビューションをインストールすると、Windows のスタートメニューに自動で登録されてるので、そこから起動できます。
Microsoft Store アプリから起動する
Microsoft Store アプリの「起動」ボタンでも起動できます。 ただ、いちいち Microsoft Store アプリを立ち上げるのも面倒だと思うので、他の起動方法の方が便利かと思います。
ディストリビューション名の実行ファイルから起動する
"(ディストリビューション名).exe" という名前の実行ファイルから起動することもできます。 Windows では実行ファイルの拡張子 ".exe" は省略できますから、ディストリビューション名をコマンドとして入力するだけで起動させることができます。 但し、実行ファイル名がディストリビューション名と少し異なる場合があるので注意が必要です。 この方法で起動すると、作業ディレクトリが現在のディレクトリからディストリビューションのホームディレクトリに自動的に変更されます。
ディストリビューション名 | 実行ファイル名 |
---|---|
Debian | debian.exe |
kali-linux | kali.exe |
openSUSE-42 | openSUSE-42.exe |
SLES-12 | SLES-12.exe |
Ubuntu | ubuntu.exe |
Ubuntu-16.04 | ubuntu1604.exe |
Ubuntu-18.04 | ubuntu1804.exe |
Ubuntu-20.04 | ubuntu2004.exe |
ubuntu2004
wsl コマンドから起動する(既定のディストリビューション)
ディストリビューションが1つ以上インストールされている状態で、wsl
コマンドをオプション無しで実行すると、
既定として設定されているディストリビューションが起動します。
この方法で起動すると、作業ディレクトリは現在のディレクトリのままです。
wsl
既定のディストリビューションを確認する
どのディストリビューションが既定として設定されているか確認するには、--status
オプションもしくは、-l
オプションを使用します。
wsl -l
Linux 用 Windows サブシステム ディストリビューション: Ubuntu-16.04 (既定) Ubuntu-18.04 Ubuntu-20.04
既定のディストリビューションを変更する
既定として設定されているディストリビューションを変更するには、--set-default
オプションを使用します。
wsl --set-default <Distro>
wsl --set-default Ubuntu-20.04
wsl コマンドから起動する(特定のディストリビューション)
特定のディストリビューションを指定して起動する場合は、wsl
コマンドに -d
オプションを付けて、ディストリビューション名を指定します。
この方法で起動すると、作業ディレクトリは現在のディレクトリのままです。
wsl -d <Distro>
wsl -d Ubuntu-20.04
Windows ターミナルから起動する
Windows ターミナルには WSL のディストリビューションを自動でプロファイルに追加する機能があります。 そのため、Windows ターミナルからも起動させることができます。 Windows ターミナルの使い方がわからない方は「Windows ターミナルの使い方」を参照してください。
ディストリビューションと Windows 間のファイル連携
ディストリビューションから Windows のディレクトリを参照する
ディストリビューション内では "/mnt/c" が、Windows の "C:\" にマウントされています。
cd /mnt/c/Users/Test
Windows からディストリビューションのディレクトリを参照する
Windows から WSL の各ディストリビューションには、"\\wsl$" でアクセスできます。 例えば、Ubuntu-20.04 のルートディレクトリは、"\\wsl$\Ubuntu-20.04" になります。 ディストリビューションが起動していない場合は参照できないので注意してください。
ディストリビューションの登録解除と再インストール
ディストリビューションを初期状態に戻したい場合もあると思います。 その場合は、アンインストールではなく登録解除してから再度インストールしなおすと良いでしょう。
登録が解除されると、そのディストリビューションに関連付けられているすべてのデータ、設定、ソフトウェアが完全に失われます。 再インストールすると、ディストリビューションのクリーンコピーがインストールされます。 初回のインストール時と異なり、ダウンロードが省略されるので、素早く再インストールすることができます。
登録解除するには --unregister
オプションを使用します。
wsl --unregister <Distro>
wsl --unregister Ubuntu-20.04
ディストリビューションのアンインストール
登録解除してもディストリビューションの本体は残ったままになっています。 完全にアンインストールする場合は、普通のアプリと同じように「アプリと機能」からアンインストールする必要があります。
参考サイト
- Windows Subsystem for Linux に関するドキュメント | Microsoft Docs
- Linux 用 Windows サブシステムとは | Microsoft Docs
- WSL 1 と WSL 2 の比較 | Microsoft Docs
- 完全なLinuxがWindows 10上で稼働する? 「WSL 2」とは:Windows 10 The Latest - @IT
- Windows 10 に WSL をインストールする | Microsoft Docs
- Linux ディストリビューションの管理 | Microsoft Docs
- WSLをインストールする - Qiita
- WSLとwindows間のファイル連携 - Qiita