最近幾天一直想找個方法把VMware虛擬機和遠程連接工具MobaXterm這一組配合替換掉,因為每次開啟虛擬機操作Ubuntu都需要占用很大的內存,而且要等好久好久才能開啟!!!后面還要使用MobaXterm或者Xshell在遠程連接進行操作總覺得好麻煩,這兩天發現了了WSL2這個好東西,設置完成利用微軟Terminal直接操作ubuntu和cmd,powershell以及微軟的Azure雲。而其打開極其迅速,內存占用少,不用再那么操心了😄。因此特此記錄一下~
先放一張我設置好的圖哈哈~
什么是WSL2?
WSL 2(Windows Subsystem for Linux) 是適用於Windows下Linux 子系統體系結構的一個新版本,它支持適用於 Linux 的 Windows 子系統在 Windows 上運行 ELF64 Linux 二進制文件。 它的主要目標是提高文件系統性能,以及添加完全的系統調用兼容性。相對於WSL1的一些缺點進行了改進,有了很大的提升。
開始操作吧
步驟 1 - 啟用適用於 Linux 的 Windows 子系統
需要先啟用“適用於 Linux 的 Windows 子系統”可選功能,然后才能在 Windows 上安裝 Linux 分發。
以管理員身份打開 PowerShell 並運行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
下面需要更新到 WSL 2,等待重新啟動計算機,然后繼續執行下一步。
步驟 2 - 檢查運行 WSL 2 的要求
若要更新到 WSL 2,需要運行 Windows 10。
- 對於 x64 系統:版本 1903 或更高版本,采用 內部版本 18362 或更高版本。
- 對於 ARM64 系統:版本 2004 或更高版本,采用 內部版本 19041 或更高版本。
若要檢查 Windows 版本及內部版本號,選擇 Windows 徽標鍵 + R,然后鍵入“winver”,選擇“確定”。 (或者在 Windows 命令提示符下輸入 ver
命令)。
步驟 3 - 啟用虛擬機功能
安裝 WSL 2 之前,必須啟用“虛擬機平台”可選功能。 計算機需要虛擬化功能才能使用此功能。
以管理員身份打開 PowerShell 並運行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新啟動 計算機,以完成 WSL 安裝並更新到 WSL 2。
步驟 4 - 下載 Linux 內核更新包
-
下載最新包:
備注:如果使用的是 ARM64 計算機,請下載 ARM64 包。 如果不確定自己計算機的類型,請打開命令提示符或 PowerShell,並輸入:
systeminfo | find "System Type"
。 -
運行上一步中下載的更新包。 (雙擊以運行 - 系統將提示你提供提升的權限,選擇“是”以批准此安裝。)
安裝完成后,請繼續執行下一步 - 在安裝新的 Linux 分發時,將 WSL 2 設置為默認版本。
步驟 5 - 將 WSL 2 設置為默認版本
打開 PowerShell,然后在安裝新的 Linux 發行版時運行以下命令,將 WSL 2 設置為默認版本:
wsl --set-default-version 2
步驟 6 - 安裝所選的 Linux 分發
-
打開 Microsoft Store,並選擇你偏好的 Linux 分發版(這里我選擇的是Ubuntu18.04 LTS)。
-
下載安裝
-
為新的Linux分發版創建用戶賬戶和密碼
4.可以在開始欄打開Ubuntu18.04啦,進行操作
祝賀你!現已成功安裝並設置了與 Windows 操作系統完全集成的 Linux 分發!
想看更詳細操作的見下面官方鏈接在 Windows 10 上安裝適用於 Linux 的 Windows 子系統 (WSL) | Microsoft Docs
一體化它不香嗎
根據上述操作,我們已經完成了WSL2的安裝操作,可以在本地直接打開ubuntu進行操作,但是平時使用過程中可能我們還需要開多個ubuntu操作窗口,還可能用到cmd命令或者powershell命令(一般用powershell,因為powershell是cmd的增強版)。這時候咱們就要開多個窗口,那豈不是煩死啦,這時候Terminal(Windows終端)出來了!!!
Windows 終端可啟用多個選項卡(在多個 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之間快速切換)、創建鍵綁定(用於打開或關閉選項卡、復制粘貼等的快捷方式鍵)、使用搜索功能,以及使用自定義主題(配色方案、字體樣式和大小、背景圖像/模糊/透明度)。
安裝Terminal很簡單,打開 Microsoft Store搜索Terminal安裝即可(推薦固定在開始欄,方便打開)。
下面說幾個常用的Terminal配置:
注意:Terminal的配置都是在窗口向下的箭頭設置
進行配置,格式是json

-
每次打開Termial都可以發現默認的是powershell,若我們想要默認打開ubuntu界面,則可以在設置文件中進行更改,打開設置文件可以看到
list
字段,里面對應的就是各個命令集。每一個都有唯一的
guid
,我們可以復制ubuntu的guid到defaultProfile
字段中,下次打開就是默認ubuntu了。 -
Termianl的黑窗口大家相比已經看煩了,我們可以在
schemes
字段內更換Terminal的界面顏色配置給大家推薦一個網站,進行界面顏色主題的配置:>_TerminalSplash - Windows Terminal Themes
在
defaults
字段中可以配置Termial的背景圖及透明度。如下: -
可以在 Windows 終端中創建新的垂直或水平窗格。 垂直拆分將在焦點窗格的右側打開一個新窗格,而水平拆分將在焦點窗格下方打開一個新窗格。 若要創建默認配置文件的新垂直窗格,可以鍵入 alt+shift+
+
。 若要創建默認配置文件的新水平窗格,可以鍵入 alt+shift+-
。注意這里新建的窗口都是一個命令集的窗口,如果想要創建不同的命令集還有上述效果,可以按住alt
+鼠標點擊窗口上方向下的箭頭選擇需要的命令集。如下: -
最后注意一點,WSL2將你本地的c盤,d盤等window內置驅動盤都掛載在/mnt目錄下,可以在ubuntu中直接操作,需要謹慎操作!!!
想看更詳細的操作可以看下面的官方文檔:Windows 終端安裝 | Microsoft Docs
目前就介紹到這啦~
2021.2.14日補更~
WSL2下安裝Docker
安裝docker,以下方式二選一
-
原生linux安裝docker方式
因為wsl2已經完整使用了linux內核了,此種方式和先前在linux虛擬機安裝docker類似,這里不加贅述。
-
Docker Desktop for windows方式
-
Docker 也專門開發了可以使用
WSL2
中的Docker
守護進程的桌面管理程序, 打開 Docker Desktop WSL2 backend 頁面,下載最新的 Docker Desktop for Windows 程序 ,建議下載stable版本。下載地址:https://www.docker.com/products/docker-desktop -
啟動Docker Desktop for Windows,點擊“設置”按鈕,啟用基於
WSL2
的引擎復選框(Use the WSL 2 based engine)
一般默認在安裝的時候默認勾選了。 -
在 Resources 的WSL Integration中設置要從哪個 WSL2 發行版中訪問 Docker,如下圖使用的是 Ubuntu18.04
-
配置docker鏡像源,原因咱們都知道的~ 在Docker Engine中設置,比原生linux設置方便多了。這里我用的是阿里雲的docker鏡像加速器。
# 打開這個地址:http://cr.console.aliyun.com/cn-hangzhou/instances/mirrors # 使用支付寶快捷登錄阿里雲可以獲取鏡像地址 # Docker版本要求≥1.12 #當然也可以換其他源 “https://docker.mirrors.ustc.edu.cn”, “https://registry.docker-cn.com”, “http://hub-mirror.c.163.com” “http://hub.daocloud.io”
-
重啟 Docker desktop for Windows,重啟完成后我們就可以在 WSL2里面使用 docker 命令了,這里我們可以測試一下
docker run hello-world
-
說明
- WSL2下原生linux安裝docker方式和完全linux虛擬機安裝docker類似,區別在於WSL2下的linux不支持systemd。
- Docker Desktop for windows方式,其實質是利用docker的C/S架構,將windows模式下的docker對應docker.sock,docker客戶端二進制和docker的數據目錄掛載到WSL2里面的linux機器,在此linux機器下執行docker命令(docker命令為docker客戶端),實質為客戶端通過掛載的/var/run/docker.sock文件與windows里面的dockerd服務端進程通信。
- Windows Docker Desktop 比直接在 WSL2 裝 Docker 的優點是能更好的跟你的工具集成,比如 IDE、PowerShell、cmd之類的東西,但是其它就沒有區別(網絡上搜的回答,其實我也感覺二者沒什么本質區別,看個人喜好吧~)
這里就算安裝完成wsl2+docker啦,但是系統默認安裝的位置是c盤,特別是docker在下載鏡像時,有的鏡像比較大,長此以往c盤怕是要爆了💥。我們可以將其更換到其他磁盤win10下修改wsl2和docker位置
2021.2.15日補更~
VScode配置
咱們接下來進行vscode的配置,這里我以golang為例。
下載好vscode安裝后,下載所需要的插件進行安裝,我個人安裝的插件如下圖:
settings.json中的配置如下:
{
//git配置
"git.path": "D:\\tools\\Git\\Git\\bin\\git.exe",
"git.autofetch": false, //一般設置為false
//vscode配置
"workbench.startupEditor": "newUntitledFile",
"explorer.compactFolders": false,
"explorer.confirmDragAndDrop": false, //移動文true件時是否確認移動
"explorer.confirmDelete": true, //刪除文件時是否確認刪除
"workbench.iconTheme": "vscode-icons", //工作台的圖標
"files.autoSave": "onFocusChange", //失去焦點時自動保存
//golang配置
"go.goroot": "D:\\tools\\go",
"go.gopath": "D:\\Golang-workspace",
"go.useLanguageServer": true, //golang智能提示 默認是關閉的 因為還不是特別成熟
"go.alternateTools": {
"go-langserver": "gopls" //gopls這個很方便 代碼提示補全和查詢源碼秒開
},
"[json]": {
"editor.quickSuggestions": {
"strings": true
},
"editor.suggest.insertMode": "replace"
},
"[go]": {
"editor.insertSpaces": false,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"files.exclude": {
"**/.idea": true
},
}
vscode通過remote wsl遠程連接wsl2情況如下圖所示:
這樣,我們就可以在vscode中完成開發,測試,部署的情況啦~
經過幾天,查了一些資料,算是把這一套配置完成啦~后續再多多熟悉熟悉操作