WSL入坑與踩坑

2021-10-24 13:34:04 字數 2171 閱讀 2718

這篇文章,將會娓娓道來我使用wsl的經歷,包括如何安裝以及早期玩家踩的一些坑。這是乙個很好的工具,與vscode簡直是絕配。

wsl是什麼

適用於 linux 的 windows 子系統可讓開發人員按原樣執行 gnu/linux 環境 - 包括大多數命令列工具、實用工具和應用程式 - 且不會產生傳統虛擬機器或雙啟動設定開銷。

它是直接執行在win上的乙個程式,對於普通linux使用者來說,它已經能夠滿足大部分需求,比如你完全可以在它下面進行go開發,與真正的linux虛擬機器使用效果一致。雖然它目前還不能夠執行systemctl等程式,但不影響我們在win下快速使用linux命令列的需求,因為開啟是秒開。而不是像虛擬機器一樣需要恢復快照等等。我們暫且將它看成是閹割版的linux,因為未來它肯定是乙個趨勢,功能也將更加完善(據說未來還會支援圖形介面)。

下面摘抄自官網文件,簡略列出目前可用的功能:

快速入門

目前微軟推出了兩個版本的linux子系統,分別是wsl1wsl2。我個人推薦使用最新版wsl2,之所以這樣選擇,是因為目前我在穩定使用的版本是2,且官方也對比了兩者的區別:

如果想要知道更多詳細的區別,可以檢視傳送門

下面就開始安裝新版wsl,坐好扶穩:

使用有兩種方式使用wsl,你可以直接在命令列執行wsl,也可以通過vscode遠端連線。

踩坑下面會給出我踩的坑和解決辦法,參考自許多github issues和部落格,許多方法不一定可行,下面是我實際成功的辦法。

使用wsl2遇到的問題:

恭喜你更新到wsl2,但是隨之而來馬上又有乙個大問題,那就是vmmem記憶體占用過大問題:

這是虛擬記憶體每次申請之後沒有釋放,而是一直占用,所以它會持續堆積。這是wsl2的bug。

解決辦法有兩個:

有可能你遇到高cpu使用的情況,同樣可以通過編寫配置來解決,新增processors=1給與它之多一核,你可以根據需要修改。

注意,編寫完.wslconfig檔案後,一定要以ansi格式儲存,這樣才會起作用。

更多的配置選項,你可以檢視wsl 命令和啟動配置

總結上一小節的踩坑是我在使用過程中遇到的所有問題,查閱了很多issue和部落格,最終將可以用的方法總結了一下,也簡要給出了原因使得你不是雲裡霧裡。參考的鏈結在前面都有給出,大多都是自己查issue找到的解決辦法。作為軟體的早期使用者,我們會遇到許許多多的bug,這是不可避免的,所以我們要長期跟進他們的issue,這樣才能看到你出現的異常情況是否是大家都出現的問題,以及相應的解決辦法。祝你使用wsl開心,太香了~

WSL下Docker使用踩坑小記

眾所周知,win10中開始提供linux子系統,即windows subsystem for linux,簡稱wsl,它可以讓我們在windows系統使用linux系統,自從有了這個新功能以後,博主果斷地放棄雙系統的方案,因為折騰起來實在花費時間。關於如何使用wsl,網上有非常多的文章可以參考,這裡...

入職以來踩過的坑

一 配置環境變數 1 在.zshrc中配置變數時,變數配置等號處多打了乙個空格,導致系統path錯誤,很多命令無法使用,最後在大佬的幫助下,才恢復系統。2 配置path變數,要把需要新增的部分放到前面,避免被覆蓋,例如 path gop ath go path 二 mac終端配置 mac 終端使用 ...

systemtap embedded C 踩坑筆記

官方文件 systemtap的embedded c中,不能 include 也不能用printf和print。那怎麼列印呢?用stap printf。用法與printf一樣。還可以訪問cript中的全域性變數。官方文件中的示例 global var global var2 100 function ...