WSL コマンドと起動構成

WSL を実行する方法

WSL を インストールした Linux ディストリビューションを実行するには、いくつかの方法があります。

  1. Windows の [スタート] メニューにアクセスし、インストールされているディストリビューションの名前を入力して、Linux ディストリビューションを開きます。 たとえば、"Ubuntu" のようになります。
  2. Windows のコマンドプロンプトまたは PowerShell から、インストールされている配布の名前を入力します。 例: ubuntu
  3. Windows コマンドプロンプトまたは PowerShell から、現在のコマンドライン内で既定の Linux ディストリビューションを開くには、「」と入力し wsl.exe ます。
  4. Windows コマンドプロンプトまたは PowerShell から、現在のコマンドライン内で既定の Linux ディストリビューションを開くには、「」と入力し wsl [command] ます。

どの方法を使用すべきかは、作業内容によって異なります。 Windows プロンプトまたは PowerShell ウィンドウ内で WSL コマンドラインを開いて終了する場合は、コマンドを入力します exit

ディストリビューションによって WSL を起動する

ディストリビューション固有のアプリケーションを使用してディストリビューションを実行すると、そのディストリビューションが独自のコンソール ウィンドウで起動します。

[スタート] メニューからの WSL の起動

これは、Microsoft Store で [起動] をクリックすることと同じです。

Microsoft Store からの WSL の起動

[distribution].exe を実行して、コマンド ラインからディストリビューションを実行することもできます。

この方法でコマンド ラインからディストリビューションを実行すると、作業ディレクトリが現在のディレクトリからディストリビューションのホーム ディレクトリに自動的に変更されるという欠点があります。

例: (PowerShell を使用)

PS C:\Users\sarah> pwd

Path
----
C:\Users\sarah

PS C:\Users\sarah> ubuntu

scooley@scooley-elmer:~$ pwd
/home/scooley
scooley@scooley-elmer:~$ exit
logout

PS C:\Users\sarah>

wsl および wsl [コマンド]

コマンド ラインから WSL を実行する最善の方法は、wsl.exe を使用することです。

例: (PowerShell を使用)

PS C:\Users\sarah> pwd

Path
----
C:\Users\sarah

PS C:\Users\sarah> wsl

scooley@scooley-elmer:/mnt/c/Users/sarah$ pwd
/mnt/c/Users/sarah

wsl は、現在の作業ディレクトリを適切に維持するだけでなく、1 つのコマンドを Windows コマンドとともに実行できます。

例: (PowerShell を使用)

PS C:\Users\sarah> Get-Date

Sunday, March 11, 2018 7:54:05 PM

PS C:\Users\sarah> wsl
scooley@scooley-elmer:/mnt/c/Users/sarah$ date
Sun Mar 11 19:55:47 DST 2018
scooley@scooley-elmer:/mnt/c/Users/sarah$ exit
logout

PS C:\Users\sarah> wsl date
Sun Mar 11 19:56:57 DST 2018

例: (PowerShell を使用)

PS C:\Users\sarah> Get-VM

Name            State CPUUsage(%) MemoryAssigned(M) Uptime   Status
----            ----- ----------- ----------------- ------   ------
Server17093     Off   0           0                 00:00:00 Opera...
Ubuntu          Off   0           0                 00:00:00 Opera...
Ubuntu (bionic) Off   0           0                 00:00:00 Opera...
Windows         Off   0           0                 00:00:00 Opera...


PS C:\Users\sarah> Get-VM | wsl grep "Ubuntu"
Ubuntu          Off   0           0                 00:00:00 Opera...
Ubuntu (bionic) Off   0           0                 00:00:00 Opera...
PS C:\Users\sarah>

複数の Linux ディストリビューションの管理

Windows 10 バージョン 1903 以降では、を使用して wsl.exe Windows Subsystem for Linux (wsl) でのディストリビューションを管理できます。これには、使用可能なディストリビューションの一覧表示、既定の配布の設定、およびディストリビューションのアンインストールが含まれます。

各 Linux ディストリビューションは、個別に独自の構成を管理します。 ディストリビューション固有のコマンドを確認するには、[distro.exe] /? を実行します。 たとえば、「 ubuntu /? 」のように指定します。

ディストリビューションの一覧表示

wsl -l , wsl --list
WSL で利用可能な Linux ディストリビューションを一覧表示します。 一覧表示されているディストリビューションは、インストールされており、使用できる状態です。

wsl --list --all 現在使用できないすべてのディストリビューションを含む、すべてのディストリビューションを一覧表示します。 インストールのプロセス中、アンインストールのプロセス中、または破損した状態の可能性があります。

wsl --list --running 現在実行中のすべてのディストリビューションを一覧表示します。

既定のディストリビューションの設定

既定の WSL ディストリビューションは、コマンド ラインで wsl を実行するときに実行されるものです。

wsl -s <DistributionName>, wsl --setdefault <DistributionName>

既定のディストリビューションを <DistributionName> に設定します。

例: (PowerShell を使用)
wsl -s Ubuntu の場合、既定のディストリビューションが Ubuntu に設定されます。 これで、wsl npm init を実行すると、Ubuntu で実行されるようになります。 wsl を実行すると、Ubuntu セッションが開きます。

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

Linux ディストリビューションは Microsoft Store を介してインストールできますが、そのストアを介してアンインストールすることはできません。 WSL Config を使用すると、ディストリビューションの登録解除/アンインストールを行うことができます。

登録を解除すると、ディストリビューションを再インストールすることもできます。

注意: 登録が解除されると、その配布に関連付けられているすべてのデータ、設定、およびソフトウェアが完全に失われます。 ストアから再インストールすると、ディストリビューションのクリーン コピーがインストールされます。

wsl --unregister <DistributionName>
ディストリビューションを再インストールまたはクリーンアップできるように、WSL からその登録が解除されます。

たとえば、wsl --unregister Ubuntu の場合、WSL で使用可能なディストリビューションから Ubuntu が削除されます。 wsl --list を実行すると、それは一覧に表示されません。

再インストールするには、Microsoft Store でディストリビューションを見つけて、[起動] を選択します。

特定のユーザーとしての実行

wsl -u <Username>, wsl --user <Username>

指定されたユーザーとして WSL を実行します。 ユーザーは WSL ディストリビューション内に存在する必要があることに注意してください。

配布の既定のユーザーを変更する

<DistributionName> config --default-user <Username>

ディストリビューションログインの既定のユーザーを変更します。 既定のユーザーになるには、ユーザーが既にディストリビューション内に存在している必要があります。

たとえば、 ubuntu config --default-user johndoe Ubuntu ディストリビューションの既定のユーザーを "johndoe" ユーザーに変更します。

注意

配布の名前を確認できない場合は、コマンドの [ ディストリビューションの一覧 ] を参照して、インストールされているディストリビューションの正式な名前を一覧表示します。

特定のディストリビューションの実行

wsl -d <DistributionName>, wsl --distribution <DistributionName>

WSL の指定したディストリビューションの実行は、既定値を変更する必要なしに、特定のディストリビューションにコマンドを送信するために使用できます。

以前のバージョンの Windows での複数の Linux ディストリビューションの管理

バージョン1903より前の Windows 10 では、WSL Config ( wslconfig.exe ) コマンドラインツールを使用して、Windows Subsystem For linux (wsl) で実行されている linux ディストリビューションを管理する必要があります。 これにより、使用可能なディストリビューションの一覧表示、既定のディストリビューションの設定、およびディストリビューションのアンインストールを行うことができます。

WSL Config はディストリビューションにまたがる設定やそれらを調整する設定に役立ちますが、各 Linux ディストリビューションは個別に独自の構成を管理します。 ディストリビューション固有のコマンドを確認するには、[distro.exe] /? を実行します。 たとえば、「 ubuntu /? 」のように指定します。

wslconfig で使用可能なオプションをすべて表示するには、wslconfig /? を実行します。

wslconfig.exe
Performs administrative operations on Windows Subsystem for Linux

Usage:
    /l, /list [/all] - Lists registered distributions.
        /all - Optionally list all distributions, including distributions that
               are currently being installed or uninstalled.
    /s, /setdefault <DistributionName> - Sets the specified distribution as the default.
    /u, /unregister <DistributionName> - Unregisters a distribution.

ディストリビューションを一覧表示するには、次のように使用します。

wslconfig /list
WSL で利用可能な Linux ディストリビューションを一覧表示します。 一覧表示されているディストリビューションは、インストールされており、使用できる状態です。

wslconfig /list /all
現在使用できないディストリビューションを含む、すべてのディストリビューションを一覧表示します。 インストールのプロセス中、アンインストールのプロセス中、または破損した状態の可能性があります。

コマンドラインでを実行したときに実行される既定のディストリビューションを設定するには、次のようにし wsl ます。

wslconfig /setdefault <DistributionName> 既定の分布をに設定 <DistributionName> します。

例: (PowerShell を使用)
wslconfig /setdefault Ubuntu の場合、既定のディストリビューションが Ubuntu に設定されます。 これで、wsl npm init を実行すると、Ubuntu で実行されるようになります。 wsl を実行すると、Ubuntu セッションが開きます。

配布を登録解除して再インストールするには:

wslconfig /unregister <DistributionName>
ディストリビューションを再インストールまたはクリーンアップできるように、WSL からその登録が解除されます。

たとえば、wslconfig /unregister Ubuntu の場合、WSL で使用可能なディストリビューションから Ubuntu が削除されます。 wslconfig /list を実行すると、それは一覧に表示されません。

再インストールするには、Microsoft Store でディストリビューションを見つけて、[起動] を選択します。

ディストリビューションごとの起動設定を wslconf で構成する

Windows ビルド17093以降で使用可能

を使用してサブシステムを起動するたびに適用される WSL の機能を自動的に構成 wsl.conf します。 これには自動マウント オプションとネットワーク構成が含まれます。

wsl.conf は、/etc/wsl.conf 内の各 Linux ディストリビューションにあります。 そのファイルがそこになければ、自分で作成できます。 WSL は、ファイルの存在を検出し、その内容を読み取ります。 ファイルが見つからないか、形式が正しくない (つまり、不適切なマークアップ形式である) 場合、WSL は通常どおりに起動を続けます。

wsl.confディストリビューションに追加できるサンプルファイルを次に示します。

# Enable extra metadata options by default
[automount]
enabled = true
root = /windir/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true

同じディストリビューションに対して複数の Linux シェルを起動する場合は、Linux サブシステムが実行を停止するまで待機する必要があります。これには、ディストリビューションシェルの最後のインスタンスを閉じてから約8秒かかることがあります。 配布を起動した場合 (Ubuntu) で、wsl の conf ファイルを変更し、配布を終了してから再起動します。 Wsl の conf ファイルへの変更がすぐに有効になることを想定しています。 現在のところ、サブシステムが実行されている可能性があります。 変更を取得するのに十分な時間を確保するために、再起動する前にサブシステムが停止するまで最大8秒間待機する必要があります。 PowerShell とコマンドを使用して、Linux ディストリビューション (シェル) がまだ実行されているかどうかを確認でき wsl --list --running ます。 ディストリビューションが実行されていない場合は、"実行中のディストリビューションがありません" という応答が返されます。 これで、ディストリビューションを再起動して、適用された wsl の更新プログラムを確認できます。

構成オプション

.ini 規則に従って、キーはセクションの下で宣言されます。

Wsl では、、、、およびの4つのセクションがサポートさ automount network interop れてい user ます。

automount

セクション: [automount]

key value default notes
enabled boolean true true にすると、固定ドライブ (つまり、 C:/ またはD:/) は /mnt の下に DrvFs で自動的にマウントされます。 false ドライブは自動的にマウントされませんが、手動またはを使用してマウントすることもでき fstab ます。
mountFsTab boolean true true にすると、WSL 開始時に処理されるように /etc/fstab を設定します。 /etc/fstab は、SMB 共有などの他のファイル システムを宣言できるファイルです。 そのため、起動時にこれらのファイル システムを WSL 内で自動的にマウントできます。
root String /mnt/ 固定ドライブが自動的にマウントされるディレクトリを設定します。 たとえば、/windir/ に WSL のディレクトリがあり、それをルートとして指定すると、固定ドライブは /windir/c でマウントされることが予想されます。
options 値のコンマ区切りのリスト 空の文字列 この値は、既定の DrvFs マウント オプション文字列に追加されます。 DrvFs 固有のオプションのみを指定できます。 マウント バイナリが通常、フラグに解析するオプションはサポートされていません。 これらのオプションを明示的に指定する場合は、それを行う対象のドライブすべてを /etc/fstab に含める必要があります。

既定では、WSL は uid と gid を既定のユーザーの値に設定します (Ubuntu ディストリビューションでは、既定のユーザーは uid = 1000、gid = 1000 で作成されます)。 ユーザーがこのキーを使用して gid または uid オプションを明示的に指定した場合、関連する値は上書きされます。 それ以外の場合は、既定値が常に追加されます。

注: これらのオプションは、自動的にマウントされたすべてのドライブのマウントオプションとして適用されます。 特定のドライブのみのオプションを変更するには、代わりに /etc/fstab を使用します。

マウント オプション

Windows ドライブ (DrvFs) にさまざまなマウント オプションを設定すると、Windows ファイルのファイルのアクセス許可を計算する方法を制御できます。 次のオプションを使用できます。

Key 説明 Default
uid すべてのファイルの所有者に使用するユーザー ID WSL ディストリビューションの既定のユーザー ID (初回インストールの場合、既定値は 1000)
gid すべてのファイルの所有者に使用するグループ ID WSL ディストリビューションの既定のグループ ID (初回インストールの場合、既定値は 1000)
umask すべてのファイルとディレクトリに対して除外するアクセス許可の 8 進数のマスク 000
fmask すべてのファイルに対して除外するアクセス許可の 8 進数のマスク 000
dmask すべてのディレクトリに対して除外するアクセス許可の 8 進数のマスク 000
metadata Linux システムのアクセス許可をサポートするためにメタデータを Windows ファイルに追加するかどうか disabled
case 大文字と小文字が区別されるディレクトリを指定します。また、WSL で作成された新しいディレクトリがフラグを設定するかどうかを指定します。 オプションの詳細については、「 ディレクトリごとの大文字と小文字の区別」と「WSL 」を参照してください。 off

注: アクセス許可マスクは、ファイルまたはディレクトリに適用される前に論理 OR 演算によって配置されます。

ネットワーク

セクションのラベル: [network]

key value default notes
generateHosts boolean true true にすると、/etc/hosts を生成するように WSL を設定します。 hosts ファイルには、IP アドレスに対応するホスト名の静的マップが含まれています。
generateResolvConf boolean true true にすると、/etc/resolv.conf を生成するように WSL を設定します。 resolv.conf には、指定されたホスト名をその IP アドレスに解決できる DNS リストが含まれています。

interop

セクションのラベル: [interop]

次のオプションは、Insider Build 17713 以降で使用できます。

key value default notes
enabled boolean true このキーの設定により、WSL で Windows プロセスの起動をサポートするかどうかが決まります。
appendWindowsPath boolean true このキーの設定により、WSL が Windows パス要素を $PATH 環境変数に追加するかどうかが決まります。

user

セクションのラベル: [user]

これらのオプションは、ビルド 18980 以降で使用できます。

key value default notes
default string 最初の実行時に作成された最初のユーザー名 このキーを設定すると、WSL セッションを最初に開始するときに実行するユーザーが指定されます。

.wslconfig を使用してグローバル オプションを構成する

Windows ビルド 19041 以降で使用可能

グローバル WSL オプションを構成するには、users フォルダーのルート ディレクトリに ファイル .wslconfig を配置します C:\Users\<yourUserName>\.wslconfig 。 これらのファイルの多くは WSL 2 に関連しています。WSL 2 VM をシャットダウンしてから WSL インスタンスを再起動して変更を有効にするために、 を実行する必要がある場合があります。 wsl --shutdown

サンプルの .wslconfig ファイルを次に示します。

[wsl2]
kernel=C:\\temp\\myCustomKernel
memory=4GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors

このファイルには、次のオプションを含めできます。

WSL 2 の設定

セクションのラベル: [wsl2]

これらの設定は、WSL 2 ディストリビューションを実行する VM に影響します。

key value default notes
kernel string Microsoft によってビルドされたカーネルによって受信トレイが提供される カスタム Linux カーネルへの絶対 Windows パス。
メモリ size Windows 上の合計メモリの 50% または 8 GB (少ない方)on builds before 20175: Windows のメモリ合計の 80% WSL 2 VM に割り当てるメモリの量。
プロセッサ 数値 Windows 上のプロセッサの数が同じ WSL 2 VM に割り当てるプロセッサの数。
localhostForwarding boolean true WSL 2 VM のワイルドカードまたは localhost にバインドされているポートを localhost:port 経由でホストから接続可能にするか指定するブール値。
kernelCommandLine string 空白 追加のカーネル コマンド ライン引数。
swap size Windows のメモリ サイズの 25% が最も近い GB に切り上げ WSL 2 VM に追加するスワップ領域の量。スワップ ファイルがない場合は 0。
swapFile string %USERPROFILE%\AppData\Local\Temp\swap.vhdx スワップ仮想ハード ディスクへの絶対 Windows パス。
  • 注: この値は Windows ビルド 19041 では true であり、Insiders プログラムの Windows ビルドでは異なる場合があります

値を持つエントリは、エスケープされた円記号を含む Windows パスである必要があります。 path 次に例を示します。 C:\\Temp\\myCustomKernel

値を持つ size エントリは、 や など、サイズの後に単位が続く必要 8GB があります 512MB