WSL 的基本命令

下列 WSL 命令會分別以 PowerShell 或 Windows 命令提示字元支援的格式列出。 若要從 Bash/Linux 發行版本命令列執行這些命令,您必須將 wsl 取代為 wsl.exe。 如需命令的完整清單,請執行 wsl --help。 如果您尚未這麼做,建議您 更新至從 Microsoft Store 安裝的 WSL 版本,以便儘快接收 WSL 更新。 (深入瞭解如何透過 Microsoft Store 安裝 WSL。

安裝

wsl --install

安裝 WSL 和 Linux 的預設 Ubuntu 發行版本。 深入了解。 您也可以執行 wsl --install <Distribution Name> 以使用此命令安裝其他 Linux 發行版本。 如需有效的發行版本名稱清單,請執行 wsl --list --online

這些選項包括:

  • --distribution:指定要安裝的 Linux 發行版本。 您可以執行 wsl --list --online 來尋找可用的發行版本。
  • --no-launch:安裝 Linux 發行版本,但不會自動啟動。
  • --web-download:從線上來源安裝 (不使用 Microsoft Store)。

未安裝 WSL 時的選項包括:

  • --inbox:使用 Windows 元件安裝 WSL (不使用 Microsoft Store)。 (WSL 更新將透過 Windows 更新接收,而不是透過市集的即時更新推送)。
  • --enable-wsl1:在安裝 Microsoft Store 版本 WSL 的期間啟用 WSL 1,同時啟用「Windows 子系統 Linux 版」選用元件。
  • --no-distribution:在安裝 WSL 時,請勿同時安裝發行版本。

注意

如果您在 Windows 10 或較舊版本上執行 WSL,您可能需要在 -d 命令中包含 --install 旗標,以指定散發套件: wsl --install -d <distribution name>

列出可用的 Linux 發行版本

wsl --list --online

請參閱線上商店提供的 Linux 發行版本清單。 此命令也可以輸入為:wsl -l -o

列出已安裝的 Linux 發行版本

wsl --list --verbose

查看您 Windows 電腦上安裝的 Linux 發行版本清單,包括狀態 (發行版本正在執行或已停止) 以及執行發行版本的 WSL 版本 (WSL 1 或 WSL 2)。 比較 WSL 1 和 WSL 2。 此命令也可以輸入為:wsl -l -v。 可與 list 命令搭配使用的其他選項包括:--all 會列出所有發行版本、--running 僅會列出目前正在執行的發行版本,或是以 --quiet 只顯示發行版本名稱。

將 WSL 版本設定為 1 或 2

wsl --set-version <distribution name> <versionNumber>

若要指定執行 Linux 發行版本的 WSL 版本 (1 或 2),請將 <distribution name> 取代為發行版本的名稱,並將 <versionNumber> 取代為 1 或 2。 比較 WSL 1 和 WSL 2。 WSL 2 僅適用於 Windows 11 或 Windows 10 1903 版 (組建 18362 或更新版本)。

警告

在 WSL 1 和 WSL 2 之間切換可能會很耗時,而且因為兩個架構之間的差異而導致失敗。 對於具有大型專案的散發套件,建議您先備份檔案,再嘗試轉換。

設定預設 WSL 版本

wsl --set-default-version <Version>

若要設定預設版本的 WSL 1 或 WSL 2,請將 取代 <Version> 為數位 1 或 2。 例如: wsl --set-default-version 2 。 此數位代表新 Linux 發行版安裝預設為 的 WSL 版本。 比較 WSL 1 和 WSL 2。 WSL 2 僅適用於 Windows 11 或 Windows 10 1903 版 (組建 18362 或更新版本)。

設定預設 Linux 發行版本

wsl --set-default <Distribution Name>

若要設定 WSL 命令將用來執行的預設 Linux 發行版本,請將 <Distribution Name> 取代為您偏好的 Linux 發行版本名稱。

將目錄變更為首頁

wsl ~

~ 可搭配 wsl 使用以在使用者的主目錄中啟動。 若要從 WSL 命令提示字元內的任意目錄跳回主目錄,您可以使用此命令:cd ~

透過 PowerShell 或 CMD 執行特定的 Linux 發行版本

wsl --distribution <Distribution Name> --user <User Name>

若要以特定使用者執行特定的 Linux 發行版本,請將 <Distribution Name> 取代為您偏好的 Linux 發行版本名稱 (即 Debian),並將 <User Name> 取代為現有使用者的名稱(即 root)。 如果 WSL 發行版本中不存在該名使用者,您會收到錯誤。 若要列出目前的使用者名稱,請使用命令 whoami

更新 WSL

wsl --update

將您的 WSL 版本更新至最新版本。 這些選項包括:

  • --web-download:從 GitHub 下載最新的更新 (而非 Microsoft Store)。

檢查 WSL 狀態

wsl --status

請參閱 WSL 設定的一般資訊,例如預設發行版本類型、預設發行版本和核心版本。

檢查 WSL 版本

wsl --version

檢查 WSL 及其元件的版本資訊。

Help 命令

wsl --help

請參閱 WSL 可用的選項和命令清單。

以特定使用者身分執行

wsl --user <Username>

若要以指定的使用者身分執行 WSL,請將 <Username> 取代為 WSL 發行版本中存在的使用者名稱。

變更發行版本的預設使用者

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

變更登入發行版本的預設使用者。 使用者必須已在發行版本內,才能成為預設使用者。

例如:ubuntu config --default-user johndoe 會將 Ubuntu 發行版本的預設使用者變更為「johndoe」使用者。

注意

如果您找不到發行版本的名稱,可使用命令 wsl -l

警告

此命令不適用於匯入的發行版本,因為這些發行版本沒有可執行檔啟動器。 您可以改為使用 /etc/wsl.conf 檔案來變更匯入發行版本的預設使用者。 請參閱進階設定組態文件中的「自動掛接」選項。

關機

wsl --shutdown

立即終止所有執行中的發行版本和 WSL 2 輕量型公用程式虛擬機器。 在需要重新啟動 WSL 2 虛擬機器環境的情況下,可能需要此命令,例如變更記憶體使用量限制或變更 .wslconfig 檔案

終止

wsl --terminate <Distribution Name>

若要終止指定的發行版本,或使其停止執行,請將 <Distribution Name> 取代為目標發行版本的名稱。

識別 IP 位址

  • wsl hostname -i 可找出透過 WSL 2 安裝的 Linux 發行版本 IP 位址 (WSL 2 VM 位址)
  • cat /etc/resolv.conf 可找出 WSL 2 視角的 Windows 電腦 IP 位址 (WSL 2 VM)

匯出散發套件

wsl --export <Distribution Name> <FileName>

將指定散發的快照集匯出為新的散發檔案。 預設為 tar 格式。 檔名可以是 - 標準輸入。 這些選項包括:

  • --vhd:指定匯出散發應該是 .vhdx 檔案,而不是 tar 檔案(這隻支援使用 WSL 2)

匯入散發套件

wsl --import <Distribution Name> <InstallLocation> <FileName>

匯入指定的 tar 檔案作為新的散發套件。 檔名可以是 - 標準輸入。 這些選項包括:

  • --vhd:指定匯入散發應該是 .vhdx 檔案,而不是 tar 檔案(這隻支援使用 WSL 2)
  • --version <1/2>:指定要將散發匯入為 WSL 1 或 WSL 2 散發

就地匯入發行版本

wsl --import-in-place <Distribution Name> <FileName>

匯入指定的 .vhdx 檔案作為新的發行版本。 虛擬硬碟必須格式化為 ext4 檔案系統類型。

取消註冊或解除安裝 Linux 發行版本

雖然 Linux 發行版本可透過 Microsoft Store 安裝,但無法透過 Microsoft Store 解除安裝。

若要取消註冊並解除安裝 WSL 發行版本:

wsl --unregister <DistributionName>

<DistributionName> 取代為您的目標 Linux 發行版本名稱,藉此將該發行版本從 WSL 移除,以便將其重新安裝或清除。 注意:一旦取消註冊,所有與該發行版本相關聯的資料、設定和軟體都會永久遺失。 從 Microsoft Store 重新安裝將會安裝一份全新的散發套件。 例如:wsl --unregister Ubuntu 會從 WSL 可用的發行版本中移除 Ubuntu。 執行 wsl --list 會看到該版本已不再列出。

您也可以將 Windows 電腦上的 Linux 發行版本應用程式解除安裝,如同從 Store 取得的其他應用程式一樣。 若要重新安裝,請在 Microsoft Store 中尋找發行版本,然後選取 [啟動]。

掛接磁碟或裝置

wsl --mount <DiskPath>

若要將連結並掛接所有 WSL2 發行版本中的實體磁碟,請將 <DiskPath> 取代為磁碟所在的「目錄/檔案」路徑。 請參閱在 WSL 2 中掛接 Linux 磁碟。 這些選項包括:

  • --vhd:指定 <Disk> 指向虛擬硬碟。
  • --name:使用掛接點的自訂名稱掛接磁碟
  • --bare:將磁碟連結至 WSL2,但不掛接。
  • --type <Filesystem>:掛接磁碟時要使用的檔案系統類型,如果未指定則預設為 ext4。 此命令也可以輸入為:wsl --mount -t <Filesystem>。您可以使用 blkid <BlockDevice> 命令來偵測檔案系統類型,例如:blkid <dev/sdb1>
  • --partition <Partition Number>:要掛接的磁碟分割索引編號,如果未指定,則預設為整個磁碟。
  • --options <MountOptions>:掛接磁碟時有一些可包含的檔案系統特定選項。 例如 ext4 掛接選項wsl --mount -o "data-ordered"wsl --mount -o "data=writeback 等。 不過,目前僅支援檔案系統特定選項。 不支援泛型選項,例如 rorwnoatime

注意

如果您要依序執行 32 位處理序以存取 wsl.exe (64 位元工具),可能需要以下列方式執行命令:C:\Windows\Sysnative\wsl.exe --command

卸載磁碟

wsl --unmount <DiskPath>

卸載指定磁碟路徑上的磁碟,如果沒有提供磁碟路徑,此命令將會卸載並中斷連結所有掛接的磁碟。

已取代的 WSL 命令

wslconfig.exe [Argument] [Options]
bash [Options]
lxrun /[Argument]

這些命令是原始 wsl 語法,用來設定透過 WSL 安裝的 Linux 發行版本,但現已取代為 wslwsl.exe 命令語法。