一、WSL實現原理
WSL(Windows Subsystem for Linux)是一個在Windows上的用戶模式虛擬機,它允許你在Windows上運行Linux環境(包括命令行工具和應用程序)而不需要虛擬機的開銷。
WSL有WS1和WS2 兩個版本,本文特指WSL2。
本機安裝運行的WSL版本為2.1.5.0
WSL的實現原理主要包括以下幾個關鍵部分:
二、WSL使用中的操作細節
1、WSL命令和WSL命令行
WSL 命令以 PowerShell 或 Windows 命令提示符支持的格式列出。 若要通過 Bash/Linux 發行版命令行運行這些命令,必須將 wsl 替換為 wsl.exe,前提是已安裝Linux發行版并運行之。
2、WSL的完整卸載
WSL完整安裝后在系統盤Program Files文件夾下生成wsl應用文件夾、Linux發行版文件夾,用戶/用戶名/AppData下生成了Linux發行版文件夾,占用空間不小。
完整卸載需要操作的步驟是:
(1)、卸載Linux發行版,Windows控制面板/程序與功能/卸載或更改程序或設置/應用/安裝的應用下均可卸載;
(2)、停用WSL,Windows控制面板/程序與功能/啟用或停用Windows功能/或設置/安裝的應用/相關設置/系統組件下均可操作;
(3)、Windows命令行下分別執行:
wsl --unmount #卸載和分離所有磁盤。
wsl --unregister <分發版名> #取消注冊分發版并刪除根文件系統。
wsl --uninstall #從此計算機卸載適用于 Linux 的 Windows 子系統包。
(4)、最后一步即可手動刪除系統盤下用戶/用戶名/AppData下生成的Linux發行版文件夾。
WSL(Windows Subsystem for Linux)是一個為Windows用戶設計的兼容層,它允許用戶在Windows 10和Windows 11操作系統上直接運行GNU/Linux環境。WSL提供了一個微軟開發的Linux兼容內核接口,使得用戶可以在不必啟動虛擬機或使用雙重啟動設置的情況下,在Windows上運行大多數命令行工具、實用程序、應用程序以及服務。
wsl.exe [參數] [選項...][命令行]
運行 Linux 二進制文件的參數: 如果未提供命令行,wsl.exe 將啟動默認 shell。
格式: wsl -e <Linux命令>
用法示例:
# 在 windows 終端命令窗口使用 cp 復制文件
wsl -e cp sql.txt tmp.txt
# 調用 axel命令多線程下載文件
wsl -e axel -n 5 https://apkegg.mumayi.cn/cooperation/2024/03/19/130/1309896/baozouyingxiongtan_V3.1.4_mumayi_742a9.apk
備注: wsl -e <Linux 命令>調用的命令必須是 windows 默認子系統中安裝的 Linux 命令,否則將執行失敗。如果子系統中沒有要調用的 Linux 命令,就需要自行使用 apt 或 yum 工具安裝。
--shell-type <standard|login|none> 這個選項通常與 -e(或 --execute)一起使用,用于在 Linux 發行版中直接執行命令,而不啟動完整的 shell 會話。
它的三種用途:
示例:
wsl -d Ubuntu --shell-type login -e pwd
格式: --cd <Directory>
如果使用 ~,則將使用 Linux 用戶的主路徑。如果路徑以 / 字符開始,它將解釋為絕對 Linux 路徑。否則,該值必須是絕對 Windows 路徑。
示例:
# 進入子系統的家目錄
wsl --cd ~
#進入指定目錄
wsl --cd /mnt/d
# windows 路徑
wsl --cd E:\go
格式: --distribution, -d <Distro>
用法示例:
wsl -d Ubuntu
格式: --user, -u <UserName>
用法示例:
wsl -u www
格式: --system
wsl --help
wsl --debug-shel
格式: --install [發行版] [選項...]
有關有效分發版的列表,請使用 'wsl.exe --list --online'。
選項:
--no-launch, -n : 安裝后不要啟動分發版。
--web-download: 從 Internet 而不是 Microsoft Store 下載分發版。
--no-distribution: 僅安裝所需的可選組件,不安裝分發版。
--enable-wsl1: 啟用 WSL1 支持。
示例:
wsl --install Ubuntu
格式: --manage <Distro> <Options...>
選項:
--set-sparse, -s <true|false>:將發行版的 vhdx 設置為稀疏,從而允許自動回收磁盤空間。
格式: --mount <Disk>
選項:
--vhd:指定 <Disk> 引用虛擬硬盤。
--bare: 將磁盤附加到 WSL2,但不要裝載它。
--name <Name>: 使用裝入點的自定義名稱裝載磁盤。
--type <Type>: 裝載磁盤時要使用的文件系統(如果未指定)默認為 ext4。
-options <Options>: 其他裝載選項。
--partition <Index>: 要裝載的分區的索引(如果未指定)默認為整個磁盤。
格式: --set-default-version <Version>
wsl --set-default-version 2
wsl --shutdow
--status
格式: --unmount [磁盤]
--uninstall
--update
選項:
--pre-release: 下載預發行版本(如果可用)。
--version, -v
格式: --export <Distro> <FileName> [選項]
選項:
--vhd: 指定應將分發版導出為 .vhdx 文件。
格式: --import <Distro> <InstallLocation> <FileName> [選項]
選項:
--version <Version>: 指定要用于新分發的版本。
--vhd: 指定所提供的文件是 .vhdx 文件,而不是 tar 文件。此操作在指定的安裝位置創建 .vhdx 文件的副本。
格式: --import-in-place <Distro> <FileName>
將指定的 .vhdx 文件作為新分發版導入。
必須使用 ext4 文件系統類型設置此虛擬硬盤的格式。
格式: --list, -l [選項]
選項:
--all: 列出所有分發版,包括當前; 正在安裝或卸載的分發版。
--running: 僅列出當前正在運行的分發版。
--quiet, -q: 僅顯示分發版名稱。
--verbose, -v: 顯示有關所有分發版的詳細信息。
--online, -o: 顯示適合通過 'wsl.exe --install' 安裝的可用分發版列表。
格式: --set-default, -s <Distro>
格式: --set-version <Distro> <Version>
--terminate, -t <Distro>
--unregister <Distro>