軟裝設(shè)計(jì)素材網(wǎng)站seo網(wǎng)站排名優(yōu)化公司
WSL使用技巧 / 虛擬機(jī)對(duì)比
- 前言
- 虛擬機(jī)比較
- VMware使用技巧
- WSL使用技巧
- 官方文檔
- 工具
- 安裝WSL
- 基本命令
- 運(yùn)行命令
- 關(guān)閉卸載
- 磁盤管理
- 導(dǎo)入導(dǎo)出
- 指定安裝路徑
前言
本文介紹了VMware和WSL的區(qū)別,并詳細(xì)介紹了WSL的使用方法和技巧。
虛擬機(jī)比較
VMware
比較靈活,擁有圖形化界面,另外也可以訪問USB設(shè)備,大部分VM軟件的圖形界面性能比Hyper-V好。
WSL 1
WSL 1用的是Windows內(nèi)核模擬的各種系統(tǒng)接口。雖然可以運(yùn)行大部分Linux應(yīng)用,但還是有不少依賴于內(nèi)核的應(yīng)用是無法正常運(yùn)行的——例如Docker。另外WSL 1和Windows共用文件系統(tǒng)、網(wǎng)絡(luò),有些時(shí)候會(huì)比較頭疼。
WSL 2
WSL 2/Docker本質(zhì)上都是Hyper-V。WSL 2是一個(gè)輕量級(jí)的Hyper-V VM;Docker for Windows如果要跑Linux鏡像,會(huì)安裝運(yùn)行一臺(tái)運(yùn)行Linux的Hyper-V虛擬機(jī)。
總結(jié)
若不嫌安裝軟件和配置操作系統(tǒng)麻煩,則可以使用VMware;
若只想熟悉Linux命令,不使用Docker,可以使用WSL 1;
若想使用Docker,且不想安裝VMware,可以使用WSL 2。
WSL占用內(nèi)存很高,且無法自動(dòng)回收,需要使用wsl --shutdown命令徹底關(guān)閉WSL才能釋放內(nèi)存。
VMware使用技巧
略。
WSL使用技巧
官方文檔
文檔目錄:https://learn.microsoft.com/zh-cn/windows/wsl/
安裝步驟:https://learn.microsoft.com/zh-cn/windows/wsl/install
基本命令:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
工具
Windows Terminal
在Microsoft Store中安裝Windows Terminal,如下圖:
此終端軟件可以打開多個(gè)選項(xiàng)卡,對(duì)Windows支持較好??梢允褂么私K端的PowerShell運(yùn)行以下WSL命令。
安裝WSL
# 安裝默認(rèn)發(fā)行版
wsl --install# 安裝指定發(fā)行版
wsl --install <Distribution Name># 獲取發(fā)行版名稱的有效列表
wsl --list --online
未安裝 WSL 時(shí),選項(xiàng)包括:
--inbox
:使用 Windows 組件(而不是 Microsoft Store)安裝 WSL。 (WSL 更新將通過 Windows 更新接收,而不是通過 Microsoft Store 中推送的可用更新來接收)。
--enable-wsl1
:在安裝 Microsoft Store 版本的 WSL 的過程中也啟用“適用于 Linux 的 Windows 子系統(tǒng)”可選組件,從而啟用 WSL 1。
--no-distribution
:安裝 WSL 時(shí)不安裝發(fā)行版。
安裝后選項(xiàng)包括:
--distribution
:指定要安裝的 Linux 發(fā)行版。 可以通過運(yùn)行 wsl --list --online 來查找可用的發(fā)行版。
--no-launch
:安裝 Linux 發(fā)行版,但不自動(dòng)啟動(dòng)它。
--web-download
:通過聯(lián)機(jī)渠道安裝,而不是使用 Microsoft Store 安裝。
基本命令
列出可用的 Linux 發(fā)行版:
wsl --list --online
# or
wsl -l -o
查看可通過在線商店獲得的 Linux 發(fā)行版列表。
列出已安裝的 Linux 發(fā)行版:
wsl --list --verbose
# or
wsl -l -v
查看安裝在 Windows 計(jì)算機(jī)上的 Linux 發(fā)行版列表,其中包括狀態(tài)(發(fā)行版是正在運(yùn)行還是已停止)和運(yùn)行發(fā)行版的 WSL 版本(WSL 1 或 WSL 2)??膳c list 命令一起使用的其他選項(xiàng)包括:--all
(列出所有發(fā)行版)、--running
(僅列出當(dāng)前正在運(yùn)行的發(fā)行版)或 --quiet
(僅顯示發(fā)行版名稱)。
將 WSL 版本設(shè)置為 1 或 2:
wsl --set-version <distribution name> <versionNumber>
若要指定運(yùn)行 Linux 發(fā)行版的 WSL 版本(1 或 2),請(qǐng)將 替換為發(fā)行版的名稱,并將 替換為 1 或 2。WSL 2 僅在 Windows 11 或 Windows 10 版本 1903、內(nèi)部版本 18362 或更高版本中可用。
設(shè)置默認(rèn) WSL 版本:
wsl --set-default-version <Version>
若要將默認(rèn)版本設(shè)置為 WSL 1 或 WSL 2,請(qǐng)將 替換為數(shù)字 1 或 2,表示對(duì)于安裝新的 Linux 發(fā)行版,你希望默認(rèn)使用哪個(gè)版本的 WSL。 例如,wsl --set-default-version 2
。 WSL 2 僅在 Windows 11 或 Windows 10 版本 1903、內(nèi)部版本 18362 或更高版本中可用。
設(shè)置默認(rèn) Linux 發(fā)行版:
wsl --set-default <Distribution Name>
# or
wsl -s <Distribution Name>
若要設(shè)置 WSL 命令將用于運(yùn)行的默認(rèn) Linux 發(fā)行版,請(qǐng)將 替換為你首選的 Linux 發(fā)行版的名稱。
更新 WSL:
wsl --update
將 WSL 版本更新到最新版本。 選項(xiàng)包括:
--web-download
:從 GitHub 而不是 Microsoft Store 下載最新更新。
檢查 WSL 狀態(tài):
wsl --status
查看有關(guān) WSL 配置的常規(guī)信息,例如默認(rèn)發(fā)行版類型、默認(rèn)發(fā)行版和內(nèi)核版本。
查看 WSL 版本:
wsl --version
檢查有關(guān) WSL 及其組件的版本信息。
Help 命令:
wsl --help
查看 WSL 中可用的選項(xiàng)和命令列表。
運(yùn)行命令
運(yùn)行默認(rèn)的Linux發(fā)行版:
# 啟動(dòng)默認(rèn)Linux發(fā)行版,并進(jìn)入當(dāng)前目錄,即wsl的mnt文件夾
wsl# 啟動(dòng)默認(rèn)Linux發(fā)行版,并進(jìn)入用戶主目錄
wsl ~# 在wsl中進(jìn)入用戶主目錄
cd ~
運(yùn)行指定的Linux發(fā)行版:
運(yùn)行指定的Linux發(fā)行版,并以指定用戶登錄
wsl --distribution <Distribution Name> --user <User Name>
# 簡(jiǎn)寫
wsl -d <Distribution Name> -u <User Name># 進(jìn)入Linux發(fā)行版后,若不知道當(dāng)前用戶名,可使用以下命令輸出當(dāng)前用戶名
whoami
其中, 為 Linux 發(fā)行版的名稱, 為用戶名稱。 若 Linux 發(fā)行版中不存在該用戶,則會(huì)報(bào)錯(cuò)。
關(guān)閉卸載
關(guān)閉WSL,關(guān)閉所有發(fā)行版,清空內(nèi)存
wsl --shutdown
立即終止所有正在運(yùn)行的發(fā)行版和 WSL 2 輕量級(jí)實(shí)用工具虛擬機(jī)。 在需要重啟 WSL 2 虛擬機(jī)環(huán)境的情形下,例如更改內(nèi)存使用限制或更改 .wslconfig 文件,可能必須使用此命令。
關(guān)閉指定發(fā)行版:
wsl --terminate <Distribution Name>
# or
wsl -t <Distribution Name>
若要終止指定的發(fā)行版或阻止其運(yùn)行,請(qǐng)將 替換為目標(biāo)發(fā)行版的名稱。
注銷并卸載 WSL 發(fā)行版:
wsl --unregister <DistributionName>
如果將 替換為目標(biāo) Linux 發(fā)行版的名稱,則將從 WSL卸載該發(fā)行版,與該發(fā)行版關(guān)聯(lián)的所有數(shù)據(jù)、設(shè)置和軟件將永久丟失。 從 Store 重新安裝會(huì)安裝發(fā)行版的干凈副本。
例如:wsl --unregister Ubuntu
將從可用于 WSL 的發(fā)行版中刪除 Ubuntu。 運(yùn)行 wsl --list
將會(huì)顯示它不再列出。
還可以像卸載任何其他應(yīng)用商店應(yīng)用程序一樣卸載 Windows 計(jì)算機(jī)上的 Linux 發(fā)行版應(yīng)用。 若要重新安裝,請(qǐng)?jiān)?Microsoft Store 中找到該發(fā)行版,然后選擇“啟動(dòng)”。
磁盤管理
裝載磁盤或設(shè)備:
wsl --mount <DiskPath>
通過將 替換為物理磁盤所在的目錄\文件路徑,在所有 WSL2 發(fā)行版中附加和裝載該磁盤。 請(qǐng)參閱在 WSL 2 中裝載 Linux 磁盤。 選項(xiàng)包括:
--vhd
:指定 引用虛擬硬盤。
--name
:使用裝入點(diǎn)的自定義名稱裝載磁盤
--bare
:將磁盤附加到 WSL2,但不進(jìn)行裝載。
--type <Filesystem>
:裝載磁盤時(shí)使用的文件系統(tǒng)類型默認(rèn)為 ext4(如果未指定)。 此命令也可輸入為:wsl --mount -t <Filesystem>
??梢允褂?blkid <BlockDevice>
命令檢測(cè)文件系統(tǒng)類型,例如:blkid <dev/sdb1>
。
--partition <Partition Number>
:要裝載的分區(qū)的索引號(hào)默認(rèn)為整個(gè)磁盤(如果未指定)。
--options <MountOptions>
:裝載磁盤時(shí),可以包括一些特定于文件系統(tǒng)的選項(xiàng)。 例如,wsl --mount -o "data-ordered"
或 wsl --mount -o "data=writeback"
之類的 ext4 裝載選項(xiàng)。 但是,目前僅支持特定于文件系統(tǒng)的選項(xiàng)。 不支持通用選項(xiàng),例如 ro、rw 或 noatime。
卸載磁盤:
wsl --unmount <DiskPath>
卸載磁盤路徑中給定的磁盤,如果未提供磁盤路徑,則此命令將卸載并分離所有已裝載的磁盤。
導(dǎo)入導(dǎo)出
導(dǎo)入和導(dǎo)出發(fā)行版:
# 導(dǎo)入
wsl --import <Distribution Name> <InstallLocation> <FileName>
# 導(dǎo)出
wsl --export <Distribution Name> <FileName>
將指定 tar 文件導(dǎo)入和導(dǎo)出為新的發(fā)行版。 在標(biāo)準(zhǔn)輸入中,文件名可以是 -。 選項(xiàng)包括:
--vhd
:指定導(dǎo)入/導(dǎo)出發(fā)行版應(yīng)為 .vhdx 文件,而不是 tar 文件
--version
:(僅導(dǎo)入)指定將發(fā)行版導(dǎo)入為 WSL 1 還是 WSL 2 發(fā)行版
指定安裝路徑
可通過導(dǎo)出再導(dǎo)入的方式指定WSL的安裝路徑,步驟如下:
查看運(yùn)行子系統(tǒng):通過wsl -l --running
查看正在運(yùn)行的子系統(tǒng)
終止運(yùn)行:若有正在運(yùn)行的子系統(tǒng),則通過wsl -t <DistributionName>
來終止其運(yùn)行
備份系統(tǒng):利用wsl --export <DistributionName> <FileName>
來備份子系統(tǒng),結(jié)果會(huì)得到一個(gè)tar歸檔文件。
假設(shè)有名為Ubuntu-20.04的子系統(tǒng), 想要將結(jié)果文件保存為Ubuntu2004.tar
(同時(shí)指定其路徑即為D:\wsl\Ubuntu2004.tar
),則調(diào)用的命令為
wsl --export Ubuntu-20.04 D:\wsl\Ubuntu2004.tar
恢復(fù)系統(tǒng):然后利用wsl --import <DistributionName> <InstallLocation> <FileName>
來恢復(fù)子系統(tǒng)。
例如wsl --import Ubuntu D:\wsl\Ubuntu2004\ D:\wsl\Ubuntu2004.tar
(將新恢復(fù)的子系統(tǒng)命名為Ubuntu)
修改默認(rèn)登錄用戶:Ubuntu config --default-user <UserName>
,若使用Ubuntu 20.04,則將Ubuntu替換為ubuntu2004。
注銷原系統(tǒng)(可選):使用wsl --unregister Ubuntu-20.04
注銷原始子系統(tǒng)。