WSL 2 的安裝過(guò)程(以及介紹)
1、什么是WSL2
WSL全稱為Windows Subsystem for Linux,官網(wǎng)譯為:適用于 Linux 的 Windows 子系統(tǒng) (WSL)。
官方文檔直達(dá):適用于 Linux 的 Windows 子系統(tǒng)文檔 | Microsoft Docs。
- WSL1和WSL2的比較:
功能 | WSL 1 | WSL 2 |
Windows 和 Linux 之間的集成 | ? | ? |
啟動(dòng)時(shí)間短 | ? | ? |
與傳統(tǒng)虛擬機(jī)相比,占用的資源量少 | ? | ? |
可以與當(dāng)前版本的 VMware 和 VirtualBox 一起運(yùn)行 | ? | ? |
托管 VM | ? | ? |
完整的 Linux 內(nèi)核 | ? | ? |
完全的系統(tǒng)調(diào)用兼容性 | ? | ? |
跨 OS 文件系統(tǒng)的性能 | ? | ? |
- 為什么要WSL2
官方解釋:可讓開(kāi)發(fā)人員直接在 Windows 上按原樣運(yùn)行 GNU/Linux 環(huán)境(包括大多數(shù)命令行工具、實(shí)用工具和應(yīng)用程序),且不會(huì)產(chǎn)生傳統(tǒng)虛擬機(jī)或雙啟動(dòng)設(shè)置開(kāi)銷。
我的觀點(diǎn):日常生活中程序的開(kāi)發(fā)離不開(kāi)Linux,而Windows的GUI界面又是我們常用的(微信、Office等)。我們可以有很多種方式使用Linux。
單主機(jī)雙系統(tǒng):能實(shí)實(shí)在的運(yùn)行不同、完整的操作系統(tǒng);切換系統(tǒng)都需要重啟,麻煩。
雙主機(jī)雙系統(tǒng):物理隔離方式,真正實(shí)現(xiàn)雙系統(tǒng);真的有人那么有錢嗎?開(kāi)發(fā)程序用兩臺(tái)電腦?
遠(yuǎn)程服務(wù)器:和單主機(jī)雙系統(tǒng)一樣;性能、帶寬、流量有局限。
虛擬機(jī)VMware:和單主機(jī)雙系統(tǒng)一樣;資源消耗大、啟動(dòng)慢、運(yùn)行效率低。我用過(guò)之后覺(jué)得有的時(shí)候卡死也不知道怎么弄。
WSL!!! 幾乎能運(yùn)行完整的操作系統(tǒng),資源消耗小、啟動(dòng)快、切換快 有些軟件可能不支持…(后續(xù)有什么毛病再更新)。
重點(diǎn):Windows與Linux子系統(tǒng)將共用同一文件系統(tǒng)!!! 我們可以在WSL中使用三劍客命令查詢分析windows文檔、日志、使用shell命令或者bash腳本運(yùn)行存儲(chǔ)在windows中的linux程序、甚至在WSL中創(chuàng)建docker容器,在windows下使用docker desktop進(jìn)行可視化管理。
總結(jié):WSL2讓我們既擁有Windows的操作界面又擁有Linux的命令行工具。
- 啟用“虛擬機(jī)平臺(tái)”
WSL 2 需要啟用 Windows 10 的 “虛擬機(jī)平臺(tái)” 特性。它獨(dú)立于 Hyper-V,并提供了一些在 Linux 的 Windows 子系統(tǒng)新版本中可用的更有趣的平臺(tái)集成。
要在 Windows 10(2004)上啟用虛擬機(jī)平臺(tái),請(qǐng)以管理員身份打開(kāi) PowerShell 或 cmd 并運(yùn)行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
要在 Windows 10(1903,1909)上啟用虛擬機(jī)平臺(tái),請(qǐng)以管理員身份打開(kāi) PowerShell或 cmd 并運(yùn)行:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
為了確保所有相關(guān)部件都整齊到位,您應(yīng)該在此時(shí)重啟系統(tǒng),否則可能會(huì)發(fā)現(xiàn)事情沒(méi)按預(yù)期進(jìn)行。
2、安裝WSL2
本次安裝環(huán)境:
處理器 Intel? Core? i5-10210U CPU @ 1.60GHz 2.11 GHz。
機(jī)帶 RAM 8.00 GB (7.79 GB 可用)。
系統(tǒng)類型 64 位操作系統(tǒng), 基于 x64 的處理器。
操作系統(tǒng) Windows 11 家庭中文版。
注意:本次安裝之前沒(méi)安裝過(guò)WSL和Ubuntu。
(1)檢查是否可以安裝
您的電腦需要以下配置:
Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版。
一臺(tái)支持 Hyper-V 虛擬化的計(jì)算機(jī)。
查看是否支持Hyper-V的方法:
打開(kāi)cmd,輸入:
systeminfo
查看Hyper-V信息。
比如我的電腦就可以支持。
下面將會(huì)介紹安裝在C盤和D盤得方法,自行選擇一種就行。
(2)安裝WSL(默認(rèn)安裝是在C盤)
用管理員身份運(yùn)行PowerShell。
wsl --install
–install 命令執(zhí)行以下操作:
- 啟用可選的 WSL 和虛擬機(jī)平臺(tái)組件。
- 下載并安裝最新 Linux 內(nèi)核。
- 將 WSL 2 設(shè)置為默認(rèn)值。
- 下載并安裝 Ubuntu Linux 發(fā)行版(可能需要重新啟動(dòng)),默認(rèn)是安裝在 C 盤的(如果要安裝其他盤可以看下面的操作)。
注意:上述命令僅在完全未安裝 WSL 時(shí)才有效,如果運(yùn)行 wsl --install 并查看 WSL 幫助文本,請(qǐng)嘗試運(yùn)行 wsl --list --online 以查看可用發(fā)行版列表并運(yùn)行 wsl --install -d以安裝發(fā)行版。
等待一會(huì)會(huì)。
順便查看了一下可以支持的linux系統(tǒng),大便、Kali、OpenSUSE、烏班圖都有,默認(rèn)安裝Ubuntu。
wsl --list --online
安裝了好一會(huì)兒了。。。。發(fā)現(xiàn)還是在85.7%,等不下去了CTRL+C了。
重新安裝,這次安裝指定的系統(tǒng)。
注意:如果命令行還是不行的話,可以直接在 Windows 應(yīng)用商店 下載 Ubuntu 20.04 安裝即可。
查看版本:
wsl -l -v
如果你之前安裝過(guò) WSL,當(dāng)前不是 WSL 2 版本,可以通過(guò)以下命令設(shè)置 WSL 的默認(rèn)版本:
wsl --set-version Ubuntu-20.04 2
重啟,然后成功了!
配置Linux。
接下來(lái)打開(kāi)已安裝的Ubuntu,這時(shí)候會(huì)提示你配置用戶和密碼。
配置完畢!即可享用。
在PowerShell中執(zhí)行wsl即可進(jìn)入,測(cè)試一下,用命令 cd / && ls -lrt 查看所有文件,如下(是不是很熟悉)。
(3)ubuntu20.04(如果需要安裝D盤)
下面是將 Ubuntu20.04 安裝在D盤的部分:
首先先在你喜歡的盤創(chuàng)建一個(gè)文件夾,比如D:\Linux,因?yàn)檫@樣即便是重裝系統(tǒng)我也不用重新裝軟件。
然后進(jìn)到這個(gè)文件夾 下載ubuntu20.04。
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
我演示用的是d:\xiazai\linux1,等他下載完即可,文件有4G多,等一會(huì)是正常的。
然后執(zhí)行下面四條命令。如下圖:
Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe
這個(gè)圖我是直接進(jìn)了wsl,因?yàn)槲乙呀?jīng)安裝過(guò)了。你們第一次安裝的話會(huì)彈出一個(gè)黑框框等幾分鐘這樣,然后輸你想要的入用戶名和密碼就行。
當(dāng)然這個(gè)時(shí)候可能會(huì)報(bào)錯(cuò),什么樣的錯(cuò)誤都可能,我以前遇到過(guò)很多次!
我發(fā)現(xiàn)最好的方法就是,按照這個(gè)文章上開(kāi)頭的那幾步重新執(zhí)行一遍(確保沒(méi)有遺漏),然后重啟,一定要重啟!重啟!!之后再嘗試,一般就解決了。
3、更新一下鏡像源
最后可以在powershell里面 , 看看自己安裝的版本。
#進(jìn)入linux終端執(zhí)行
sudo vim /etc/apt/sources.list
將官方的源都注釋掉,換成下面兩個(gè)之一即可(我的是Ubuntu20.04,別的版本或者源可以自行網(wǎng)上搜)。
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
清華源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
如果遇到問(wèn)題:
Certificate verification failed: The certificate is NOT trusted——更新Ubuntu20.04、Debian11的過(guò)程中遇到的證書驗(yàn)證失敗問(wèn)題。
解決辦法:
更改源文件,將所有的https改成http。
sudo vim /etc/apt/sources.list
重新更新源。
sudo apt update
安裝/更新證書ca-certificates。
sudo apt install --reinstall ca-certificates
參照步驟一將鏡像源文件改回https。
再次更新源。
sudo apt update && sudo apt upgrade
大功告成。
4、安裝Windows Terminal
Windows Terminal能幫助我們管理命令行工具、PowerShell和WSL等Shell用戶的工具,能為我們提供最佳的 WSL 體驗(yàn)。
下載方式:
??https://www.microsoft.com/store/productId/9N0DX20HK701。??
MicroSoft Store (微軟商店)找關(guān)鍵字 Windows Terminal。
打開(kāi)微軟應(yīng)用商店,搜索“Terminal”,安裝,打開(kāi)后的界面是這樣的:
默認(rèn)打開(kāi)的是 PownerShell 終端,我們可以設(shè)置為默認(rèn)打開(kāi) Ubuntu 終端。點(diǎn)擊標(biāo)簽右邊的下拉三角,選擇設(shè)置:
會(huì)在左下角看到一個(gè)打開(kāi) JSON 文件按鈕,然后選擇用記事本打開(kāi),在 profiles->list 中找到 Ubuntu 的 guid 并復(fù)制。
將它粘貼為文件開(kāi)頭的 defaultProfile 的值:
(1)安裝 oh-my-zsh
在 ubuntu 下終端執(zhí)行。
- 安裝 zsh:
sudo apt update
sudo apt install git zsh -y
然后查看。
可以看到 zsh 已經(jīng)安裝上去,再執(zhí)行。
chsh -s /bin/zsh
- 安裝oh my zsh所需的字體。
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
- 安裝oh my zsh。
國(guó)內(nèi)下載地址:wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh。
給 install.sh 添加執(zhí)行權(quán)限。
chmod +x install.sh
修改 install.sh 的鏡像。
vi install.sh
將以下:
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
更改為:
REPO=${REPO:-mirrors/oh-my-zsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}
保存退出,執(zhí)行 install.sh 就將 oh-my-zsh 安裝上。
(2)安裝皮膚
安裝完 oh-my-zsh 后,編輯 ~/.zshrc 文件,將主題設(shè)置為 agnoster robbyrussell:
再做一點(diǎn)點(diǎn)美化:把命令行的機(jī)器名稱去掉,并調(diào)整用戶名的背景色。編輯 agnoster 主題文件:
vi ~/.oh-my-zsh/themes/agnoster.zsh-theme
把 92 行修改為:
prompt_segment green black "%(!.%{%F{yellow}%}.)%n"
修改后如下:
關(guān)閉 Terminal 再重新打開(kāi),效果如下:
(3)安裝歷史命令自動(dòng)補(bǔ)全
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
(4)安裝高亮顯示
git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
安裝完改一下配置文件。
vim ~/.zshrc
把plugins中兩個(gè)剛剛下載好的插件名字加進(jìn)去,然后保存退出。
plugins=( git zsh-autosuggestions zsh-syntax-highlighting )
最后更新一下配置文件。
source .zshrc
執(zhí)行之后注銷重新登陸即可。
首先查看本機(jī)安裝了哪些子系統(tǒng):
wsl --list --all
其次:
wsl --unregister <System_name>
到其路徑下將全部文件刪除即可。