windows 的 wsl 命令
?wsl 文檔:https://docs.microsoft.com/zh-cn/windows/wsl/
From :https://blog.csdn.net/weixin_34101784/article/details/88729575
From :https://www.cnblogs.com/Flat-White/p/13501639.html
玩轉(zhuǎn) WLS:Windows 10 Ubuntu子系統(tǒng) :https://www.jianshu.com/nb/38447202
給 WSL安裝圖形管理工具 Webmin:https://www.jianshu.com/p/63a38da17fa0
Windows Subsystem for Linux(簡(jiǎn)稱(chēng)WSL)是一個(gè)在Windows 10上能夠運(yùn)行原生Linux二進(jìn)制可執(zhí)行文件(ELF格式)的兼容層。它是由微軟與Canonical公司合作開(kāi)發(fā),其目標(biāo)是使純正的Ubuntu 14.04 "Trusty Tahr"映像能下載和解壓到用戶(hù)的本地計(jì)算機(jī),并且映像內(nèi)的工具和實(shí)用工具能在此子系統(tǒng)上原生運(yùn)行。
為什么 Linux 上的程序無(wú)法在 Windows 上運(yùn)行
了解過(guò)一點(diǎn)操作系統(tǒng)原理的同學(xué)應(yīng)該都知道,這是 Windows 與 Linux 的內(nèi)核提供的接口不同(系統(tǒng)調(diào)用、API 等)導(dǎo)致的。舉個(gè)栗子,我們想知道某目錄下的內(nèi)容,在 Linux 下我們會(huì)使用?ls?命令,而在 Windows 下我們會(huì)使用?dir?命令。
當(dāng)我們?cè)?Linux 上執(zhí)行?ls?命令,ls?會(huì)調(diào)用?getdents?這個(gè)系統(tǒng)調(diào)用,Linux 內(nèi)核收到請(qǐng)求,將目錄的內(nèi)容返回給應(yīng)用程序;當(dāng)我們?cè)?Windows 上執(zhí)行?dir?命令,dir?會(huì)調(diào)用?NtQueryDirectoryFile?這個(gè) API,NT 內(nèi)核收到請(qǐng)求,將目錄的內(nèi)容返回給應(yīng)用程序。雖然系統(tǒng)不同,但基本上都是一個(gè)道理。
然而,當(dāng)我們把 Linux 上的應(yīng)用程序拿到 Windows 上運(yùn)行時(shí),應(yīng)用程序和內(nèi)核就雙雙懵逼了。比如?ls?會(huì)嘗試調(diào)用?getdents?系統(tǒng)調(diào)用(理想化的情況下,暫不考慮可執(zhí)行文件格式等問(wèn)題),Windows 的 NT 內(nèi)核一看,心說(shuō):「這他娘的什么東西,老子不認(rèn)識(shí)啊,啥情況啊」,ls?也想:「尼瑪,內(nèi)核怎么不回話(huà)啊,咋回事兒啊」……兩邊語(yǔ)言不通,應(yīng)用程序自然無(wú)法正確執(zhí)行。
但是有了 WSL,情況就不一樣了。
依然拿?ls?舉例,當(dāng)我們?cè)?WSL 中運(yùn)行?ls?命令時(shí),ls?會(huì)調(diào)用?getdents?系統(tǒng)調(diào)用(這個(gè)系統(tǒng)調(diào)用接口是 WSL 提供的,Windows 本身并沒(méi)有這個(gè)接口),WSL 收到這個(gè)請(qǐng)求,明白了應(yīng)用程序是想要知道目錄的內(nèi)容,于是把 Linux 的系統(tǒng)調(diào)用轉(zhuǎn)換為 NT API?NtQueryDirectoryFile。NT 內(nèi)核收到 WSL 的請(qǐng)求,將目錄的內(nèi)容返回給 WSL,WSL 再把返回的內(nèi)容包裝好后返回給?ls。
也就是說(shuō),WSL 在 Linux 應(yīng)用程序與 Windows NT 內(nèi)核之間起到了翻譯者的作用。很簡(jiǎn)單的道理,既然 NT 內(nèi)核無(wú)法理解 Linux 應(yīng)用程序的 POSIX 系統(tǒng)調(diào)用,那就弄個(gè)翻譯來(lái)將 POSIX 系統(tǒng)調(diào)用實(shí)時(shí)轉(zhuǎn)換為 NT 內(nèi)核能理解的 API 調(diào)用,突出一個(gè)見(jiàn)人說(shuō)人話(huà)、見(jiàn)鬼說(shuō)鬼話(huà)。
只要實(shí)現(xiàn)了足夠多的系統(tǒng)調(diào)用翻譯,那么理論上 WSL 可以完全模擬成一個(gè) Linux 內(nèi)核。
相信各位都聽(tīng)說(shuō)過(guò)鼎鼎大名的 Cygwin。同樣是能讓 Linux 應(yīng)用程序運(yùn)行在 Windows 上,WSL 和 Cygwin 有什么不同呢?其實(shí)差別還是挺大的。
雖然 Cygwin 提供了完整的 POSIX 系統(tǒng)調(diào)用 API(以運(yùn)行庫(kù)?Cygwin*.dll?的形式提供),但其依然工作在 User Mode;而 WSL 中的 Linux 應(yīng)用程序進(jìn)程會(huì)被包裹在一個(gè)叫做 Pico Process 的東西里,這個(gè)東西里發(fā)出的所有系統(tǒng)調(diào)用請(qǐng)求都會(huì)被直接送往 Kernel Mode 中的?lxcore.sys?與?lxss.sys?處理。
同樣是將 POSIX 系統(tǒng)調(diào)用轉(zhuǎn)換為 Windows 中的 API,Cygwin 是轉(zhuǎn)換成 Win32 API 的調(diào)用(因?yàn)樗茉O(shè)在 Win32 子系統(tǒng)上,很多內(nèi)核操作受限于 Win32 的實(shí)現(xiàn),比如?fork),而 WSL 則是轉(zhuǎn)換為更底層的 NT API 調(diào)用(WSL 是與 Win32 平行的子系統(tǒng),直接架設(shè)在 NT 內(nèi)核上,可以通過(guò) NT API 原生實(shí)現(xiàn)?fork?等系統(tǒng)調(diào)用)。
WSL 架構(gòu)示意圖。圖片來(lái)源:Windows for Linux Nerds?:https://blog.jessfraz.com/post/windows-for-linux-nerds/
最重要的一點(diǎn):如果使用 Cygwin,Linux 應(yīng)用程序的源碼必須 link 至 Cygwin 運(yùn)行庫(kù)(Cygwin*.dll),修改源碼重新編譯后才能在 Windows 下運(yùn)行。這些重新編譯后的 Linux 應(yīng)用程序在調(diào)用 POSIX API 時(shí)不會(huì)直接去請(qǐng)求內(nèi)核,而是會(huì)去調(diào)用 Cygwin 運(yùn)行庫(kù),由運(yùn)行庫(kù)翻譯成 Win32 API、執(zhí)行調(diào)用后返回結(jié)果。這也就意味著,重新編譯后的應(yīng)用程序需要依賴(lài) Cygwin 運(yùn)行庫(kù)才能正常運(yùn)行(有時(shí)候你會(huì)碰到的「缺少?Cygwin1.dll」報(bào)錯(cuò)就是這個(gè)原因),而且這樣編譯出來(lái)的可執(zhí)行程序是純正的 Win32 PE 格式封裝,只能在 Windows 上運(yùn)行。Cygwin 目錄下,被編譯成 Win32 可執(zhí)行程序的 Linux 應(yīng)用程序們。
?而在 WSL 下,我們可以直接運(yùn)行未經(jīng)任何修改的 ELF 格式 Linux 可執(zhí)行程序。
總結(jié):WSL 就像是一個(gè)翻譯官,就算那些未經(jīng)修改的 Linux 應(yīng)用程序們操著一口純正的 POSIX 系統(tǒng)調(diào)用語(yǔ)法,WSL 也能快速準(zhǔn)確地將其翻譯為 NT 內(nèi)核能聽(tīng)懂的 API 調(diào)用;而那些使用了 Cygwin 重新編譯后的 Linux 應(yīng)用程序,就像是改造人一樣變成了 Win32 應(yīng)用程序的形狀,還被套了個(gè)翻譯機(jī)。程序自己(源碼中)說(shuō)的是 POSIX,經(jīng)過(guò)翻譯機(jī)(Cygwin 運(yùn)行庫(kù))之后就變成 Win32 API 調(diào)用了,這樣 NT 內(nèi)核也能聽(tīng)得懂。但是每次添加新程序都要改造,多麻煩啊,還是 WSL 原生態(tài)更健康(笑)。
安裝 WSL,擁抱可愛(ài)的 Linux
注意:WSL 僅支持 64 位系統(tǒng)
第一步,打開(kāi)「控制面板」中的「程序與功能」,點(diǎn)擊左側(cè)邊欄的「啟用或關(guān)閉 Windows 功能」選項(xiàng),在彈出的窗口中勾選「適用于 Linux 的 Windows 子系統(tǒng)」,然后點(diǎn)擊確定(可能需要重啟)。如果你懶得用 GUI,也可以直接在 PowerShell 中以管理員權(quán)限執(zhí)行命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux?第二步,打開(kāi) Microsoft Store,搜索「WSL」。挑選一個(gè)你喜歡的 Linux 發(fā)行版,然后點(diǎn)擊安裝。(截至目前,商店中可用的發(fā)行版有 Ubuntu、openSUSE、SUSE Linux Enterprise Server、Debian 以及 Kali Linux。)
?第三步,在開(kāi)始菜單中找到你剛剛安裝的發(fā)行版,打開(kāi)它。等待幾分鐘的初始化過(guò)程,設(shè)定好用戶(hù)名與密碼后(不需要與 Windows 的相同,用過(guò) Linux 的選手應(yīng)該都懂的)就會(huì)自動(dòng)進(jìn)入 Linux 環(huán)境。至此,你已經(jīng)完成了 WSL 的安裝。你也可以同時(shí)安裝多個(gè)發(fā)行版,它們的數(shù)據(jù)都是獨(dú)立的,互不影響。
Microsoft store下載的kali不包含任何工具 需要后續(xù)安裝完整版kali
先更新源 使用命令:apt-get update
安裝 vim:sudo apt-get install vim
更換 kali 源
sudo vim /etc/apt/sources.list
然后復(fù)制下面的源
#中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib#阿里云 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib#清華大學(xué) deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free#浙大 deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free#東軟大學(xué) deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib#官方源 deb http://http.kali.org/kali kali-rolling main non-free contrib deb-src http://http.kali.org/kali kali-rolling main non-free contrib然后使用如下命令查看源是否更換成功:cat /etc/apt/sources.list
更新源并安裝完整版 kali
sudo apt-get update # 更新源 sudo apt-get dist-upgrade # 更新軟件 sudo apt-get install kali-linux-large # 安裝完整版kali許多教程這里的安裝命令都是 sudo apt-get install kali-linux 或 sudo apt-get install kali-linux-full
這里也是找了很久才知道主要數(shù)據(jù)包名字改了 導(dǎo)致很多教程現(xiàn)在都失效了
鏈接:Major Metapackage Makeover | Kali Linux Blog?
?執(zhí)行完第二條命令后有一個(gè)報(bào)錯(cuò)提示
/* 這個(gè)報(bào)錯(cuò)筆者第一次安裝時(shí)沒(méi)有遇到 但是后續(xù)多次嘗試都有遇到這個(gè)問(wèn)題= =
暫時(shí)不清楚原因 */
?執(zhí)行如下命令修復(fù)可解決
sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/ sudo mkdir /var/lib/dpkg/info/ sudo apt-get update … sudo apt-get -f install … sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/ sudo rm -rf /var/lib/dpkg/info sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/參考:https://blog.csdn.net/heray1990/article/details/47803541
然后再執(zhí)行第三條命令安裝完整版kali
如果更新源后沒(méi)有更新軟件直接執(zhí)行第三條命令
可使用:sudo apt-get install kali-linux-large --fix-missing
這里中途會(huì)有一些圖形化界面的選擇選項(xiàng) 類(lèi)似這種
?這里用翻譯軟件自行翻譯選擇合適選項(xiàng)
//有教程寫(xiě)有Yes選Yes有OK選OK 最后一個(gè)選“from inetd”
安裝時(shí)大致查看過(guò)這些選項(xiàng)影響應(yīng)該不大請(qǐng)自行斟酌
然后就等著黑框框里閃啊閃啊 等待安裝完成
這里提一下Windows Terminal從PowerShell進(jìn)入子系統(tǒng)只需使用kali或者bash命令
其中bash命令是在當(dāng)前目錄進(jìn)入子系統(tǒng)
CTRL+D可以回到PowerShell/cmd
安裝完成后簡(jiǎn)單的測(cè)試一下
?可以發(fā)現(xiàn)kali內(nèi)置Python2 Python3 以及binwalk可以正常使用。至此 安裝結(jié)束。
使用軟件源鏡像
由于眾所周知的原因,各大發(fā)行版默認(rèn)的軟件源在中國(guó)大陸的訪問(wèn)速度是龜速。
我目前使用的是?? 清華大學(xué)的 Ubuntu 鏡像源: :https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
安裝多個(gè)發(fā)行版
Windows 10 Fall Creators Update 之后,WSL 支持同時(shí)安裝多個(gè) Linux 發(fā)行版,直接在 Microsoft Store 中搜索想要的發(fā)行版并點(diǎn)擊安裝即可。這些發(fā)行版可以同時(shí)運(yùn)行,并且數(shù)據(jù)互相獨(dú)立。你可以使用?wslconfig.exe?來(lái)查詢(xún)已安裝的發(fā)行版,或者更改默認(rèn)的發(fā)行版。
刪除發(fā)行版也很簡(jiǎn)單,直接卸載對(duì)應(yīng)的商店應(yīng)用即可(記得備份哦)。?
多種進(jìn)入 WSL 的方式比較
新版支持同時(shí)安裝多個(gè)發(fā)行版,那自然不能像以前那樣只提供一個(gè)?bash.exe?入口了。
秋季創(chuàng)意者更新之后的 Windows 提供了?多種進(jìn)入 WSL 環(huán)境的方式:
- wsl.exe
打開(kāi)默認(rèn)發(fā)行版中的默認(rèn) Shell。
- <distroname>.exe
打開(kāi)指定發(fā)行版中的默認(rèn) Shell。
- bash.exe?(DEPRECATED)
打開(kāi)默認(rèn)發(fā)行版中的?bash?Shell。
如果你更改了默認(rèn) Shell 卻總是打開(kāi) bash,就說(shuō)明你使用了這個(gè)入口。
你也可以通過(guò)這些入口直接在 WSL 中執(zhí)行命令并返回結(jié)果:
- <distroname> -c [command]
- bash -c [command]
- wsl [command](不再需要指定?-c)?
與 Windows 的互操作性
WSL 與 Windows 之間的互操作性 (Interoperability) 很牛逼。怎么個(gè)牛逼法呢?
Windows 下的所有盤(pán)符都掛載在 WSL 中的?/mnt?目錄下,可以直接操作。WSL 中的所有數(shù)據(jù)則存放于?C:\Users\{你的用戶(hù)名}\AppData\Local\Packages\{Linux發(fā)行版包名}\LocalState\rootfs?目錄中(不要在 Windows 中修改這些文件,這會(huì)造成文件權(quán)限錯(cuò)誤):
$ ls /mnt c d e $ mount -l rootfs on / type lxfs (rw,noatime) C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000) D: on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000) E: on /mnt/e type drvfs (rw,noatime,uid=1000,gid=1000)可以在 Windows 命令行環(huán)境中直接調(diào)用 WSL 中的命令:
PS C:\temp> wsl ls -al total 0 drwxrwxrwx 1 printempw printempw 4096 Sep 7 19:04 . drwxrwxrwx 1 printempw printempw 4096 Sep 7 18:38 .. -rwxrwxrwx 1 printempw printempw 4 Sep 7 19:04 foo.txt也可以在 WSL 中直接啟動(dòng) Windows 應(yīng)用:
$ notepad.exe "C:\temp\foo.txt"還可以通過(guò) pipes 與 Windows 程序通信:
# 復(fù)制內(nèi)容至 Windows 剪貼板 $ cat foo.txt | clip.exe甚至可以把 Windows 命令和 WSL 命令混著用:
PS> ipconfig | wsl grep IPv4 IPv4 Address. . . . . . . . . . . : 192.168.1.114$ ipconfig.exe | grep IPv4 | cut -d: -f2 192.168.1.114$ ls -al | findstr.exe foo.txt -rwxrwxrwx 1 printempw printempw 4 Sep 7 19:04 foo.txt$ cmd.exe /c dirVolume in drive C is WindowsVolume Serial Number is B263-****Directory of C:\temp2018/09/07 19:04 <DIR> . 2018/09/07 19:04 <DIR> .. 2018/09/07 19:04 4 foo.txt1 File(s) 4 bytes2 Dir(s) 194,422,341,632 bytes free同時(shí),WSL 與 Windows 共享網(wǎng)絡(luò)棧,也就是說(shuō)你可以:
- 在 WSL 中啟動(dòng) web server,在 Windows 上使用瀏覽器訪問(wèn);
- 在 Windows 下啟動(dòng) MySQL/Redis 服務(wù)器,在 WSL 中連接;
- 諸如此類(lèi)。
如果你對(duì) WSL 與 Windows 之間互操作的原理有興趣,可以參考一下這些文章:
- WSL interoperability with Windows
- Windows and Ubuntu Interoperability
DrvFs 文件權(quán)限問(wèn)題
雖然 WSL 中可以直接訪問(wèn) Windows 磁盤(pán)的內(nèi)容,但如果你曾經(jīng)這么做過(guò),你應(yīng)該對(duì)這樣綠油油一片的?ls?不會(huì)感到陌生。為什么 NTFS 文件系統(tǒng)中的文件到 WSL 下權(quán)限就全部成?0777?了呢?
這主要是 DrvFs 中 Linux 文件權(quán)限的實(shí)現(xiàn)導(dǎo)致的。
在 WSL 中,Microsoft 實(shí)現(xiàn)了兩種文件系統(tǒng),用于支持不同的使用場(chǎng)景:
- VolFs
著力于在 Windows 文件系統(tǒng)上提供完整的 Linux 文件系統(tǒng)特性,通過(guò)各種手段實(shí)現(xiàn)了對(duì) Inodes、Directory entries、File objects、File descriptors、Special file types 的支持。比如為了支持 Windows 上沒(méi)有的 Inodes,VolFs 會(huì)把文件權(quán)限等信息保存在文件的 NTFS Extended Attributes 中。記得我上面警告過(guò)你不要在 Windows 中修改 WSL 里的文件嗎?就是因?yàn)?Windows 中新建的文件缺少這個(gè)擴(kuò)展參數(shù),VolFs 無(wú)法正確獲取該文件的 metadata,而且有些 Windows 上的編輯器會(huì)在保存時(shí)抹掉這些附加參數(shù)。
WSL 中的?/?使用的就是 VolFs 文件系統(tǒng)。
- DrvFs
著力于提供與 Windows 文件系統(tǒng)的互操作性。與 VolFs 不同,為了提供最大的互操作性,DrvFs 不會(huì)在文件的 NTFS Extended Attributes 中儲(chǔ)存附加信息,而是從 Windows 的文件權(quán)限(Access Control Lists,就是你右鍵文件 > 屬性 > 安全選項(xiàng)卡中的那些權(quán)限配置)推斷出該文件對(duì)應(yīng)的的 Linux 文件權(quán)限。
所有 Windows 盤(pán)符掛載至 WSL 下的?/mnt?時(shí)都是使用的 DrvFs 文件系統(tǒng)。
由于 DrvFs 的文件權(quán)限繼承機(jī)制很微妙,最后導(dǎo)致的結(jié)果就是所有文件的權(quán)限都變成了?0777。而且由于早期的 DrvFs 不支持 metadata,所以你無(wú)法給這些文件 chown/chmod,只能對(duì)著綠油油的?ls?干瞪眼。不過(guò)好消息是,Windows Insider Build 17063 之后,DrvFs 也像 VolFs 一樣支持給文件寫(xiě)入 metadata 了。
要啟用 DrvFs 的 metadata 支持,你需要添加參數(shù)重新掛載磁盤(pán):
# 修改成你自己的盤(pán)符 $ sudo umount /mnt/e $ sudo mount -t drvfs E: /mnt/e -o metadata不過(guò)如果僅僅是執(zhí)行了這個(gè),雖然支持了文件權(quán)限的修改,但磁盤(pán)下的文件權(quán)限默認(rèn)依然還是?0777,除非你給它們整個(gè)?chmod?一遍。如果你不想這么做,也可以指定其他的 mount 參數(shù):
$ sudo mount -t drvfs E: /mnt/e -o metadata,uid=1000,gid=1000,umask=22,fmask=111這樣磁盤(pán)下的文件的默認(rèn)權(quán)限就是?0644,ls?也不會(huì)再是綠油油一片啦。
?不過(guò)每次使用時(shí)都要重新掛載未免也太煩,我們可以通過(guò)另一個(gè)新特性?Automatically Configuring WSL?實(shí)現(xiàn)自動(dòng)掛載。在 WSL 中創(chuàng)建?/etc/wsl.conf,在其中填寫(xiě)如下內(nèi)容:
[automount] enabled = true root = /mnt/ options = "metadata,umask=22,fmask=111" mountFsTab = true# 這個(gè)文件里還可以添加其他配置項(xiàng),有興趣的可以看看上面的鏈接重啟終端,所有的盤(pán)符就會(huì)使用上面的配置自動(dòng)掛載啦(可以使用?mount -l?查看)。
另外,如果你想要給不同的盤(pán)符設(shè)定不同的掛載參數(shù)(上面的方法對(duì)所有盤(pán)符都有效,如果你想在 WSL 中運(yùn)行 Windows 下的應(yīng)用程序,就得每次都?chmod +x?一下,所以我一般都會(huì)把?C:?排除掉),就需要手動(dòng)修改?/etc/fstab。首先確保?wsl.conf?中的?mountFsTab?為?true,然后編輯?/etc/fstab,添加如下內(nèi)容:
# 不在此列表中的盤(pán)符會(huì)使用 wsl.conf 中的參數(shù)掛載 # 格式可以自己去查 fstab 的幫助文檔 E: /mnt/e drvfs rw,relatime,uid=1000,gid=1000,metadata,umask=22,fmask=111 0 0其他關(guān)于 WSL 的折騰
雖然 Microsoft 開(kāi)發(fā) WSL 出來(lái)主要是著重于命令行環(huán)境的使用,但經(jīng)過(guò)測(cè)試,WSL 是可以通過(guò) X Server 執(zhí)行 GUI 應(yīng)用程序的,甚至還可以在 WSL 里面用 Wine 執(zhí)行 Windows 程序……(??)
也有人試過(guò)在 WSL 中運(yùn)行完整的 DE,體驗(yàn)似乎還不錯(cuò),有興趣的同學(xué)可以去試試。
另外,你也可以通過(guò)某些神秘的方法用上 Microsoft Store 未提供的 Linux 發(fā)行版,比如?Arch Linux。
如果你對(duì) WSL 的底層實(shí)現(xiàn)有興趣,也可以去圍觀一下 WSL 的官方博客:
- https://blogs.msdn.microsoft....
- https://blogs.msdn.microsoft....
總結(jié)
雖然 WSL 很不錯(cuò),但是其比起真正的 Linux 系統(tǒng)還是有很多不足(Docker 等涉及未實(shí)現(xiàn)的內(nèi)核特性的軟件無(wú)法使用,Raw socket 相關(guān)的操作依然容易出錯(cuò),I/O 性能相比之下較為孱弱等)。如果你日常開(kāi)發(fā)中需要使用到那些 WSL 未提供的 Linux 特性,那么還是乖乖跑 VM 或者裝 Linux 吧。
對(duì)我來(lái)說(shuō),WSL 最大的意義就是,讓我能夠用我熟悉的 Linux 那一套去操作 Windows。
如果你和我的需求一樣,那么比起 Cygwin、VM 等解決方案,WSL 有著完整的 Linux 環(huán)境、強(qiáng)大的互操作性、更低的資源占用。離不開(kāi) Windows,卻又羨慕 Linux 下強(qiáng)大命令行工具的各位,相信你們會(huì)喜歡 WSL 的。
而且最近幾年 Microsoft 在籠絡(luò)開(kāi)發(fā)者方面的努力大家有目共睹,這里就容我夸上一句:
Microsoft,干得漂亮!
wsl 命令
wsl --help 顯示wsl幫助 wsl --list --online 查看有哪些可用的系統(tǒng) wsl --list 查看所有安裝的發(fā)行版 wsl -l -v 查看已安裝的Linux子系統(tǒng) wsl --list --running 查看正在運(yùn)行的發(fā)行版 wsl --install -d Ubuntu 安裝系統(tǒng)Ubuntu wsl -d Ubuntu 多個(gè)子系統(tǒng)時(shí) ,-d 指定啟動(dòng) wsl -s Ubuntu 設(shè)置默認(rèn)發(fā)行版 wsl 啟動(dòng)默認(rèn)發(fā)行版 wsl --unregister Ubuntu-20.04 刪除 某個(gè) wsl 子系統(tǒng),例如 Ubuntu-20.04 wsl -t Ubuntu #或者 wsl --terminate Ubuntu 讓某個(gè)子系統(tǒng)關(guān)機(jī)在CMD中直接運(yùn)行Linux命令,使用方法很簡(jiǎn)單:wsl + Linux 命令 wsl free -m 查看電腦內(nèi)存 wsl ls 打印文件夾 wsl top 運(yùn)行TOP命令用 Windows 資源管理器打開(kāi) Linux 文件系統(tǒng) 首先運(yùn)行 wsl 進(jìn)入 WSL 環(huán)境,運(yùn)行explorer.exe . (注意不要忘了"點(diǎn)")總結(jié)
以上是生活随笔為你收集整理的windows 的 wsl 命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 通过一个例子介绍 IDA pro 的简单
- 下一篇: Windows 安装 MongoDB 和