WSL(Windows Subsystem for Linux)の使い方

この記事は最終更新日から 2年以上 が経過しています。

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 がそのまま動いてるのですから。

ubuntu_setup.png

WSL の有効化

さっそくですが有効化していきましょう。

「スタートメニュー > Windows システム ツール > コントロール パネル > プログラム > Windows の機能の有効化または無効化」で、「Windows の機能」のダイアログを開きます。 「Windows の機能」のダイアログが開いたら、「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」の項目にチェックを付けて有効化します。 Windows の再起動が必要になるので再起動します。

mswsl.png vmp.png

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 2 に設定する
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>
例:Ubuntu 20.04 LTS をインストールする
wsl --install -d Ubuntu-20.04

新しくインストールしたディストリビューションを初めて起動すると、コンソールウィンドウが開き、ファイルが圧縮解除されて PC に格納されるまで 1、2 分待つように求められます。 今後のすべての起動には、1 秒もかかりません。 次に、ディストリビューション用のユーザーアカウントとパスワードを作成する必要があります。

ubuntu_install.png

現在インストールされているディストリビューションの一覧を表示する

現在インストールされているディストリビューションの一覧を表示するには、-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>
例:Ubuntu-20.04 を WSL 1 に変更する
wsl --set-version Ubuntu-20.04 1

ディストリビューションを起動する

起動する方法はいくつかあります。 どの方法を使用すべきかは、作業内容や好みによっても異なるでしょう。 ちなみに、起動後にウィンドウを閉じたり、exit コマンドを入力したりすると終了します。

スタートメニューから起動する

ディストリビューションをインストールすると、Windows のスタートメニューに自動で登録されてるので、そこから起動できます。

startmenu.png

Microsoft Store アプリから起動する

Microsoft Store アプリの「起動」ボタンでも起動できます。 ただ、いちいち Microsoft Store アプリを立ち上げるのも面倒だと思うので、他の起動方法の方が便利かと思います。

msstore_run.png

ディストリビューション名の実行ファイルから起動する

"(ディストリビューション名).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
例:Ubuntu-20.04 を起動する場合
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>
例:既定のディストリビューションを Ubuntu-20.04 に変更する
wsl --set-default Ubuntu-20.04

wsl コマンドから起動する(特定のディストリビューション)

特定のディストリビューションを指定して起動する場合は、wsl コマンドに -d オプションを付けて、ディストリビューション名を指定します。 この方法で起動すると、作業ディレクトリは現在のディレクトリのままです。

書式
wsl -d <Distro>
例:Ubuntu-20.04 を起動する場合
wsl -d Ubuntu-20.04

Windows ターミナルから起動する

Windows ターミナルには WSL のディストリビューションを自動でプロファイルに追加する機能があります。 そのため、Windows ターミナルからも起動させることができます。 Windows ターミナルの使い方がわからない方は「Windows ターミナルの使い方」を参照してください。

windows_terminal.png

ディストリビューションと Windows 間のファイル連携

ディストリビューションから Windows のディレクトリを参照する

ディストリビューション内では "/mnt/c" が、Windows の "C:\" にマウントされています。

例:ディストリビューション内から Windows の "C:\Users\Test" を参照する
cd /mnt/c/Users/Test

Windows からディストリビューションのディレクトリを参照する

Windows から WSL の各ディストリビューションには、"\\wsl$" でアクセスできます。 例えば、Ubuntu-20.04 のルートディレクトリは、"\\wsl$\Ubuntu-20.04" になります。 ディストリビューションが起動していない場合は参照できないので注意してください。

win_wsl.png

ディストリビューションの登録解除と再インストール

ディストリビューションを初期状態に戻したい場合もあると思います。 その場合は、アンインストールではなく登録解除してから再度インストールしなおすと良いでしょう。

登録が解除されると、そのディストリビューションに関連付けられているすべてのデータ、設定、ソフトウェアが完全に失われます。 再インストールすると、ディストリビューションのクリーンコピーがインストールされます。 初回のインストール時と異なり、ダウンロードが省略されるので、素早く再インストールすることができます。

登録解除するには --unregister オプションを使用します。

書式
wsl --unregister <Distro>
例:Ubuntu-20.04 を登録解除する場合
wsl --unregister Ubuntu-20.04

ディストリビューションのアンインストール

登録解除してもディストリビューションの本体は残ったままになっています。 完全にアンインストールする場合は、普通のアプリと同じように「アプリと機能」からアンインストールする必要があります。

uninstall.png

参考サイト

関連記事

Windows では、コマンドプロンプト、Windows PowerShell、WSL(Windows Subsystem for Linux)、Git Bash などのコマンドラインツールがいくつかあります。それらのアプリが増えてきてしまい、タスクバーがとっちらかってしまっている方もいると思います。そんな場合に便利な ...
Docker は、構成を気軽に組み替えたりできるので、とても便利ですよね。Windows で Docker を使って開発している方も多いと思うのですが、個人的にはどうしても気が乗らない理由がありました。それは処理速度です。遅い。遅すぎる。めちゃくちゃ遅い。つらい。耐えられない。。。ということで調査しました。いろいろと調 ...
Windows 上の Docker を高速化するためには WSL 2 を使うと良いというのは、以前の記事「Windows の Docker 環境を高速化する方法」で書きました。そこで、今回はその WSL 2 上に PHP と JavaScript の開発環境を作る方法を、備忘録としてメモしておきます。WSL 2 の使い ...
WSL 2 を使用していると、1つのディストリビューションにつき1つの環境しか作れないように感じてしまいますが、実はそんなことはありません。WSL 2 のエクスポートとインポートの機能を使用すると、環境を丸ごとバックアップしたり、同じ環境を簡単に複製したりすることができます。複数の環境を作って動作確認したい場合などでは ...

記事検索

最新記事

人気記事

RSSフィード

お知らせ

フィードバック

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

匿名でフィードバックする
匿名でフィードバックする

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

なお、このフォームから入力された内容について、管理者から返信はできませんので注意してください。 もし、管理者からの返信が必要であれば、X(Twitter) もしくは、お問い合わせより、お願いします。

  • フィードバックの送信が完了しました。