WSL 是適用于 Linux 的 Windows 子系統,可讓開發人員按原樣運行 GNU/Linux 環境 - 包括大多數命令行工具、實用工具和應用程序 - 且不會產生傳統虛擬機或雙啟動設置開銷。
WSL 分為兩個版本,一個是 WSL1,一個是 WSL2,WSL2 是 WSL1 的升級版,主要優勢是:
WSL2 建議不要跨操作系統使用文件,若想獲得最快的性能速度,請將文件存儲在 WSL 文件系統中,在存儲時,使用 Linux 文件系統根目錄:\wsl$\Ubuntu-20.04\home\<user name>\Project。
訪問 WSL2 文件系統,可以運行命令 WIN+R 或在文件資源管理器地址欄中鍵入 \wsl$,以查找相應的分發名稱并訪問其根文件系統。
大多數情況下我們會使用 WSL2,但在以下情況,請考慮使用 WSL1:
# 啟動默認 Linux 分發版
wsl
# 以指定用戶身份運行 Linux 分發版
wsl -u <username>
# 運行指定的 Linux 分發版
wsl -d <Linux分發版名稱>
# 退出 Linux 分發版
exit
# 終止指定的分發
wsl -t <Linux分發版名稱>
# 終止所有運行的分發及 WSL 輕型工具虛擬機
wsl --shutdown
# 列出已安裝且可供使用的 Linux 分發版
wsl -l
# 列出所有分發,包括當前不可用的分發
wsl -l --all
# 僅列出當前正在運行的分發
wsl -l --running
# 僅顯示分發名稱
wsl -l -q
# 顯示所有分發的詳細信息
wsl -l -v
# 列出可安裝 Linux 分發版
wsl -l -o
# 安裝指定 Linux 分發版
wsl --install -d <Linux分發版名稱>
# 卸載 Linux 分發版,卸載后可以重新安裝
wsl --unregister <Linux分發版名稱>
# 導入 Linux 分發版, 可加 --version 指定要用于新分發的版本
wsl --import <Linux分發版名稱> <安裝位置> <文件名>
# 導出 Linux 分發版,后綴名請以 tar 結尾
wsl --export <Linux分發版名稱> <路徑>
# 設置默認 Linux 分發版
wsl -s <Linux分發版名稱>
# 在不使用默認 Linux Shell 的情況下執行指定的命令
wsl -e <命令行>
# 更改新分發的默認安裝版本
wsl --set-default-version <版本>
# 更新 WSL2 內核到最新版本
wsl --update
# 還原到 WSL2 內核的先前版本
wsl --update --rollback
# 更改指定分發的版本
wsl --set-version <Linux分發版名稱> <版本>
可以使用 localhost 從 Windows 上訪問 Linux 分發版中的應用。
如果要從 Linux 分發版訪問 Windows 上運行的網絡應用,則需要使用主機的 IP 地址。你可以執行以下步驟來使其可行。
當使用遠程 IP 地址連接到應用程序時,它們將被視為來自局域網 (LAN) 的連接。這意味著你需要確保你的應用程序可以接受 LAN 連接。例如,你可能需要將應用程序綁定到 0.0.0.0 而非 127.0.0.1。
當使用 WSL 1 分發版時,如果計算機設置為可供 LAN 訪問,那么在 WSL 中運行的應用程序也可供在 LAN 中訪問。
這不是 WSL 2 中的默認情況,WSL 2 有一個帶有其自己獨一無二的 IP 地址的虛擬化以太網適配器。目前,若要啟用此工作流,你需要執行與常規虛擬機相同的步驟。下面是一個示例 PowerShell 命令,用于添加偵聽主機上的端口 4000 的端口代理并將其連接到端口 4000,并使用 IP 地址 192.168.101.100 連接到 WSL 2 VM。
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100
使用 wsl <Linux命令> 可以在 CMD 或 PowerShell 運行 Linux 命令,示例:
wsl ls -la
以這種方式運行的命令使用的是同一個工作目錄,并且以 WSL 默認用戶的身份運行,擁有與調用方進程和終端相同的 Windows 管理權限。
# 組合 Linux 的 ls 命令 和 powershell 的 findstr 命令
wsl ls -la | findstr "git"
# 組合 powershell 的 dir 命令和 Linux 的 grep 命令
dir | wsl grep git
# 組合 Linux 的 ls 命令 和 powershell 的 > 命令
組合 Linux 的 ls 命令 和 powershell 的 findstr 命令
# 使用 Linux 命令 列出 Linux 文件
wsl ls -la /proc/cpuinfo
# 使用 Linux 命令 列出 Windows 文件
wsl ls -la "/mnt/c/Program Files"
WSL 可以使用 [tool-name].exe 直接從 WSL 命令行運行 Windows 工具。例如,notepad.exe。
以這種方式運行的應用程序具有相同的工作目錄,擁有與 WSL 進程相同的權限,以活動 Windows 用戶的身份運行,顯示在 Windows 任務管理器中。
WSL 還有一些高級用法,比如更改磁盤大小,文件權限,環境變量等,具體配置可以參考官方文檔。
更多互聯網精彩資訊、工作效率提升關注【飛魚在浪嶼】(日更新)
Windows 11 的Linux 子系統 (WSL)已更新,帶來了新功能和改進,包括支持Linux GUI 應用程序、更容易安裝和更新平臺、集成文件資源管理器、增強存儲等。
WSL 是使用輕量級虛擬機在Windows 運行 Linux 發行版(如Ubuntu 、Debian)的平臺,而無通過虛擬機或配置雙引導系統方式。
WSL還是叫版本2,但在體驗方面有許多改進,包括新的更快的安裝過程、支持Linux 圖形應用程序、集成文件資源管理器等。
在 Windows 11 上,WSL 的安裝過程明顯更簡化。過去,需要通過“Windows 功能”界面啟用 WSL 1,啟用虛擬化平臺,并下載內核更新切換到 WSL 2。從Win11開始,兩個新命令,包括wsl --install 和 wsl --update 可以更快地安裝和更新系統。
如果計算機上未設置適用于 Linux 的 Windows 子系統,您現在可以運行該wsl --install命令來安裝在 使用 Linux 所需的所有組件。該命令將配置虛擬機平臺,安裝 WSL組件,下載適用于 Linux 內核的 Windows 子系統,設置 Linux GUI 應用程序支持,并默認安裝 Ubuntu。運行該命令后,唯一的額外步驟是重新啟動計算機以應用配置。
Windows 11 系統映像中的自定義 Linux 內核已被刪除,現在需要從 Microsoft Store 下載。
如果使用wsl --install帶有--distribution選項的命令,還可以指定要下載的發行版,如果不希望將 Ubuntu 用作默認發行版。
使用wsl --list --online命令查看可以在 Windows 11 上獲得的所有可用發行版。
還有一個新wsl --update命令可以檢查和安裝適用于該平臺的任何更新。
這些命令是 Windows 11 的新命令,但它們在Windows 10也可用。
現在支持Linux GUI 應用程序。因此,現在可以安裝圖形應用程序并和Windows 11 應用程序一起運行。
Microsoft 正在為開發人員引入此功能來測試他們的應用程序,包括運行編輯器、工具和程序。該支持還附帶 GPU 加速的 3D 圖形以及麥克風和揚聲器,如果安裝過媒體應用程序,這些組件將被應用程序使用。
一旦安裝了Windows 子系統,它還會安裝同步運行的 X 服務器,其中包括 Wayland、pulse audio和其他組件。關閉應用程序和 WSL 會話后,X服務器也會自動關閉。
系統會在開始菜單中添加一個條目來啟動程序,而無需在控制臺中鍵入命令。此外,在運行應用程序時,該圖標還包含一個 Linux 日志,指明這不是本機 Windows 應用程序。
系統呈現的視覺效果就像安裝在 Linux 上一樣。例如,應用程序框架、菜單、按鈕和其他事件與 Linux 的圖形界面相同。但是,Windows 不會呈現這些視覺效果。你會看到與運行該應用程序的發行版的遠程桌面連接。
安裝驅動設備可以訪問 Windows 11 不支持的 Linux 文件系統。
安裝驅動器的過程很簡單。打開 PowerShell 并運行wmic diskdrive list brief以確認要掛載的磁盤,然后(例如)該wsl --mount \.\physicaldrivepath --partition 1命令將使用物理驅動器的 ext4 文件系統掛載第一個分區。
如果需要掛載不同的文件系統,比如使用wsl --mount \.\physicaldrivepath -t vfat命令將文件系統掛載為“fat”。
安裝驅動器后,可以使用該\wsl.localhost\distroname\mountpoint命令從文件資源管理器訪問該文件。
此外,WSL現在更好地集成到文件資源管理器應用程序中。例如,Windows 11 上的默認文件管理器在導航窗格中包含一個“Linux”條目,可讓快速訪問所有Linux文件。
此外,為了提高性能和可靠性,默認路徑已從 \wsl\更改為\wsl.localhost\,但仍然可以使用原始路徑訪問文件。
啟動期間運行 Linux 命令。需要來更改配置文件/etc/wsl.config在“boot”下添加“command”。
WSL現在還支持GPU 計算,這是一項新功能,Linux 二進制文件能夠利用 GPU 執行更密集的機器學習 (ML) 開發和數據科學工作流。