WSL 指令
下列指令在 PowerShell 或命令提示字元 執行。若人已經在 Linux shell 裡,改打 wsl.exe(例如 wsl.exe --shutdown)。完整清單見 wsl --help 與 Basic commands for WSL。
每天會用到的
wsl # 進入預設發行版(工作目錄常是目前的 Windows 資料夾)
wsl ~ # 進入預設發行版的家目錄
wsl -d Debian # 指定發行版
wsl -l -v # 已安裝清單、執行中與否、WSL 1 或 2
wsl --status # 預設發行版、預設版本、kernel
wsl --shutdown # 立刻關掉所有發行版與 WSL 2 虛擬機器
改了 .wslconfig、記憶體一直不釋放、網路狀態怪異時,先 wsl --shutdown 再重開發行版。它會中斷所有發行版裡正在跑的行程,存檔後再執行。
只停某一個:
安裝、更新、版本
wsl --install
wsl --install -d Ubuntu-24.04
wsl -l -o # 線上可安裝的發行版
wsl --update
wsl --version
wsl --set-version Ubuntu 2
wsl --set-default-version 2
wsl --set-default Ubuntu
備份與搬移
發行版本質上是一份磁碟映像。搬家或重裝 Windows 前先匯出:
wsl --export Ubuntu D:\backup\ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\WSL\Ubuntu D:\backup\ubuntu.tar --version 2
--import 的第二個參數是安裝位置資料夾(Windows 路徑),第三個是 tar 檔。也可以匯出成 .vhdx(加 --vhd),還原較快。
tar 與 VHDX 差在哪
- tar(Tape Archive):Linux 傳統封存檔,把整個根目錄的檔案、權限、連結打包成一個檔。通用、可用
tar指令查看內容;WSL 1、WSL 2 都能用,但大型發行版匯入較慢。 - VHDX(Virtual Hard Disk v2):Microsoft 的虛擬硬碟格式,WSL 2 每個發行版本來就存成一個
ext4.vhdx。--vhd是整顆磁碟直接複製,匯入快、完全照原樣;只適用 WSL 2,且未回收的空間也會一起帶走,檔案常比 tar 大。
一般備份、搬到別台電腦用 tar;發行版很大、想快速複製再用 VHDX。
unregister 會刪資料
wsl --unregister 之後,該發行版內的家目錄、套件、資料庫全部消失。沒有匯出就不要執行。
在 Windows 裡跑一條 Linux 指令
指令在預設發行版執行,工作目錄對應目前的 Windows 資料夾。這適合寫腳本;日常互動還是進 shell 比較清楚。
指定使用者
第二種寫法依發行版啟動器而異(ubuntu、ubuntu2404 等)。匯入的發行版沒有這種啟動器時,改在 /etc/wsl.conf 設 [user] default=...,見 組態檔。