2017自己做網(wǎng)站的趨勢seo站長
1 概述
? ? ? ?Windows Subsystem for Linux(簡稱WSL)是一個在Windows 10\11上能夠運行原生Linux二進制可執(zhí)行文件(ELF格式)的兼容層。它是由微軟與Canonical公司合作開發(fā),開發(fā)人員可以在 Windows 計算機上同時訪問 Windows 和 Linux 的強大功能。 通過適用于 Linux 的 Windows 子系統(tǒng) (WSL),開發(fā)人員可以安裝 Linux 發(fā)行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 應(yīng)用程序、實用程序和 Bash 命令行工具,不用進行任何修改,也無需承擔(dān)傳統(tǒng)虛擬機或雙啟動設(shè)置的費用?!疽冒俣劝倏啤?/p>
? ? ? ? 適用于 Linux 的 Windows 子系統(tǒng) (WSL) 是 Windows 的一項功能,可用于在 Windows 計算機上運行 Linux 環(huán)境,而無需單獨的虛擬機或雙引導(dǎo)。 WSL 旨在為希望同時使用 Windows 和 Linux 的開發(fā)人員提供無縫高效的體驗?!疽脀sl】
2 WSL版本
? ? ? WSL分為WSL1和WSL2,WSL 1 和 WSL 2 之間的主要區(qū)別在于,在托管 VM 內(nèi)使用實際的 Linux 內(nèi)核、支持完整的系統(tǒng)調(diào)用兼容性以及跨 Linux 和 Windows 操作系統(tǒng)的性能。 WSL 2 是安裝 Linux 發(fā)行版時的當(dāng)前默認版本,它使用最新最好的虛擬化技術(shù)在輕量級實用工具虛擬機 (VM) 內(nèi)運行 Linux 內(nèi)核。 WSL2 將 Linux 發(fā)行版作為托管 VM 內(nèi)的隔離容器運行。
功能比較:
參考官網(wǎng)【https://learn.microsoft.com/zh-cn/windows/wsl/compare-versions】
3 啟用虛擬化
可通過任務(wù)管理器(Ctrl+Shift+Esc)中的性能確認CPU虛擬化,默認開啟
4 開啟虛擬任務(wù)
1、通過快捷鍵WIN+R打開運行窗口,輸入control,點擊確定,打開控制面板
2、點擊“程序”,打開程序面板
3、點擊“啟用或關(guān)閉Windows功能”
4、點擊確定后,可正常應(yīng)用WSL
5 安裝WSL
5.1 檢驗安裝情況
1、通過WIN+R快捷鍵打開運行窗口,輸入cmd,打開命令提示符窗口
2、輸入wsl
如果提示子系統(tǒng)沒有已安裝的分發(fā)版,說明還沒有安裝。
如果提示子系統(tǒng)沒有已安裝的分發(fā)版,說明還沒有安裝。
5.2 查看支持的 Linux 發(fā)行版
使用wsl –list –online 可查看支持的Linux發(fā)行版
5.3 無法解析服務(wù)器的名稱或地址
在使用wsl –list –online 可查看支持的Linux發(fā)行版時,可能會提示“無法解析服務(wù)器的名稱或地址”
這個錯誤通常表示W(wǎng)indows Subsystem for Linux(WSL)無法解析指定的服務(wù)器名稱或IP地址??赡艿脑虬ňW(wǎng)絡(luò)配置問題、DNS服務(wù)器不可用、或者服務(wù)器名稱不正確。
5.3.1 解決方法
1、檢查服務(wù)器名稱:確保輸入的服務(wù)器名稱正確無誤。
2、網(wǎng)絡(luò)配置:確保WSL的網(wǎng)絡(luò)配置正確??梢試L試重啟WSL服務(wù):在命令提示符或PowerShell中運行wsl --shutdown。
3、DNS問題:確認Windows系統(tǒng)的DNS設(shè)置是否正確,可以嘗試更換DNS服務(wù)器,如使用Google的8.8.8.8或8.8.4.4。
4、防火墻/安全軟件:檢查是否有防火墻或安全軟件阻止了WSL的網(wǎng)絡(luò)訪問。
5、臨時網(wǎng)絡(luò)問題:嘗試重新連接網(wǎng)絡(luò)或重啟路由器。
5.3.2 網(wǎng)絡(luò)正常配置
如果網(wǎng)絡(luò)正常,配置下DNS就可解決,配置方式如下:
1、右鍵桌面圖標“網(wǎng)絡(luò)”屬性,打開網(wǎng)絡(luò)和共享中心
2、點擊“更改適配器設(shè)置”,打開網(wǎng)絡(luò)連接窗口
3、選擇WLAN右鍵屬性,打開WLAN屬性窗口
4、雙擊Internet協(xié)議版本4(TCP/IPv4),更改DNS
5.4 Wsl/WININET_E_NAME_NOT_RESOLVED
在執(zhí)行 wsl –list –online時,有時會出現(xiàn)以下問題:
無法從“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分發(fā)。無法解析服務(wù)器的名稱或地址
Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
遇到這個問題時,可以通過訪問 https://www.sojson.com/ip/查詢 raw.githubusercontent.com 域名對應(yīng)的 IP 地址。
然后對C:\Windows\System32\drivers\etc\hosts文件進行追加
185.199.109.133 raw.githubusercontent.com
5.5?安裝Ubuntu
1、選擇Linux發(fā)行版的Ubuntu-24.04進行安裝
2、安裝過程中,會出現(xiàn)Ubuntu24.04.1 LTS 的安裝窗口,可能會一直出現(xiàn)“Installing,this may take a few minutes…”這樣的提示??梢酝ㄟ^wsl --list -v命令,查詢Ubuntu的運行狀態(tài)。
如果出現(xiàn)上面的情況,可以將該命令符提示窗口關(guān)閉。輸入wsl后:
上圖所示明顯Ubuntu已經(jīng)安裝成功,卻跳過了創(chuàng)建用戶的步驟,因此,只需要創(chuàng)建一個新用戶,并將其設(shè)定為默認啟動的用戶就可以解決問題。
解決方法:(參考:https://www.cnblogs.com/ziyulab/p/18446092#2-%E8%A7%A3%E5%86%B3)
1、創(chuàng)建新用戶
2、通過cat /etc/passwd 查看用戶是否添加
3、為用戶賦予sudo權(quán)限
vim /etc/sudoers
# 增加配置, 在打開的配置文件中,找到root ALL=(ALL:ALL) ALL, 在下面添加一行
# 其中xxx是你要加入的用戶名稱
xxx ALL=(ALL:ALL) ALL
# 按esc,輸入:wq!保存配置
?/etc/sudoers 文件是用來配置 sudo 命令的訪問權(quán)限的。
sudo 是一個用于在 Linux 和其他類 Unix 操作系統(tǒng)上以超級用戶身份執(zhí)行命令的工具。/etc/sudoers 文件定義了哪些用戶或用戶組具有以超級用戶身份執(zhí)行命令的權(quán)限。
4、設(shè)置用戶為默認啟動用戶
vim /etc/wsl.conf
# 添加配置
[user]
default=你的用戶名
# 按esc,輸入:wq!保存配置
5、通過wsl --shutdown 重啟Ubuntu,完成修改
5.6?啟動虛擬機
?在命令符提示中,輸入wsl,就能進入到子系統(tǒng)中
5.7?注銷或刪除虛擬機
?參考:https://blog.csdn.net/FHY26828/article/details/143863100
1、注銷虛擬機:僅刪除 WSL 環(huán)境配置,不會刪除對應(yīng)的文件:
wsl --unregister Ubuntu-24.04
2、完全刪除虛擬機(包括文件夾)
(1)找到虛擬機的文件存儲位置(默認在 C:\Users\<用戶名>\AppData\Local\Packages)。
(2)手動刪除對應(yīng)的文件夾。
5.8?臨時切換WSL版本
臨時切換到WSL1
wsl --set-version Ubuntu-2404 1
?5.9?設(shè)置默認版本
設(shè)置默認WSL2
wsl --set-default-version 2
5.10?查看版本
wsl --status
5.11 更新 WSL 內(nèi)核
更新WSL后,需要重啟電腦
?wsl --update
?通過執(zhí)行wsl --update,用戶可以檢查并下載任何WSL2內(nèi)核更新,這是因為WSL2內(nèi)核是WSL2本身的一部分,并且在所有已安裝的發(fā)行版之間共享,因此其更新方式與其他包更新方式不同。
更新后,增加了更多的功能,比如可通過systemd管理Linux服務(wù);可通過 wsl --version 查看版本信息等。
5.12 以特定用戶的身份運行?
wsl --user test
5.13 將目錄更改為主頁
wsl ~
5.14 更改發(fā)行版的默認用戶
更改用于發(fā)行版登錄的默認用戶。 用戶必須已經(jīng)存在于發(fā)行版中才能成為默認用戶。
<DistributionName> config --default-user <Username>
例如:ubuntu config --default-user test
?會將 Ubuntu 發(fā)行版的默認用戶更改為“test”用戶。
5.15?注意事項?
當(dāng)安裝了vmware時,不要啟動WSL2,可能導(dǎo)致虛擬化問題。?