顛覆虛擬機的大神——WSL來了


提綱
1、wsl的安裝
2、使用方法
2.1 linux文件系統和windows文件系統互相訪問
2.2 linux下執行windows命令和windows下執行linux命令
2.3 linux下訪問windows的網絡服務和windows下訪問linux的網絡服務

1、wsl的安裝

wsl是什么呢?wsl是windows subsystem for linux的簡寫,指的是windows10的一個子系統,這個子系統的作用是在windows下運行linux操作系統。

當然一旦運行linux操作系統,適用於linux的所有應用軟件就都可以在其中運行,這樣從使用者的角度看,似乎在windows上就可以運行本來只能在liunx下運行的各種軟件和應用程序了。

有了wsl,就可以在windows10中運行linux操作系統了。

那么這么看來,似乎wsl就是一個windows10自帶的虛擬機軟件(比如virtualbox、vmware workstation等),他們到底一樣不一樣呢?事實上,wsl和虛擬機軟件並不一樣。

wsl和虛擬機只不過從表面上看起來是有點類似,在虛擬機中可以裝linux操作系統,在wsl中也可以安裝linux操作系統,比如ubuntu、centos等都可以安裝,在虛擬機中安裝linux后就可以運行linux上的典型軟件了,比如vi、wget等命令行軟件,在wsl中安裝linux系統后,也可以運行這些linux中的應用軟件,所以說,在從使用者的角度看、從表面上看,wsl和虛擬機軟件是類似的。

可是,wsl和虛擬機軟件的不同點在哪里呢?事實上,wsl底層實現上和虛擬機軟件(比如virtual box,vmware workstation等)是不一樣的,wsl運行linux的資源開銷沒有在虛擬機軟件中運行linux的資源開銷大。

wsl安裝方法是和它的版本有關系,不同的版本安裝方法稍有不同。目前wsl分為兩個版本,1.0和2.0,WSL2 是 WSL1 的升級版,wsl1是將linux的syscall轉成windows的系統調用,從而在windows上面搞出了一層linux兼容層,linux應用軟件等都是運行在這個兼容層之上,wsl2底層還是基於hyperV的虛擬機的。

第一步、打開wsl子系統

1.0安裝的時候需要打開windows可選功能中的“適用於Linux的Windows子系統”,2.0安裝的時候不僅要打開可選功能中的“適用於Linux的Windows子系統”,還要打開“虛擬機平台”這個可選功能。

第二步、安裝Linux系統

從windows自帶的“Microsoft Store”中搜索“ubuntu”,選擇ubuntu18.04安裝。

安裝后ubuntu18.04就會稱為開始菜單中一個普通應用軟件了,找到之后點擊,就會打開ubuntu18.04的命令行界面:

這樣就擁有一個ubuntu18.04的系統了,可以像使用虛擬機中的ubuntu或者服務器中的ubuntu一樣使用它,沒有任何的限制。

2、使用方法

下面是wsl的一些基本的使用方法,但是是最重要的使用方法。

2.1 linux文件系統和windows文件系統互相訪問

在ubuntu下訪問windows的文件系統的方法,也就是ubuntu下訪問c盤、d盤、e盤的方法。

cd /mnt/
ls
cd進入對應盤符就可以看到c盤或者d盤或者e盤的文件了

windows下訪問ubuntu文件系統的方法

在windows資源管理器界面中輸入:
\wsl$,然后會出現各個ubuntu的圖標,點擊進入對應ubuntu的文件系統中。

2.2 linux下執行windows命令和windows下執行linux命令

2.1 啟動與停止
# 啟動默認 Linux 分發版
wsl
 
# 以指定用戶身份運行 Linux 分發版
wsl -u <username>
 
# 運行指定的 Linux 分發版
wsl -d <Linux分發版名稱>
 
# 退出 Linux 分發版
exit
 
# 終止指定的分發
wsl -t <Linux分發版名稱>
 
# 終止所有運行的分發及 WSL 輕型工具虛擬機
wsl --shutdown
2.2 查看
# 列出已安裝且可供使用的 Linux 分發版
wsl -l
 
# 列出所有分發,包括當前不可用的分發
wsl -l --all
 
# 僅列出當前正在運行的分發
wsl -l --running
 
# 僅顯示分發名稱
wsl -l -q
 
# 顯示所有分發的詳細信息
wsl -l -v
2.3 安裝與卸載
# 列出可安裝 Linux 分發版
wsl -l -o
 
# 安裝指定 Linux 分發版
wsl --install -d <Linux分發版名稱>
 
# 卸載 Linux 分發版,卸載后可以重新安裝
wsl --unregister <Linux分發版名稱>
2.4 導入與導出
# 導入 Linux 分發版, 可加 --version 指定要用於新分發的版本
wsl --import <Linux分發版名稱> <安裝位置> <文件名>
 
# 導出 Linux 分發版,后綴名請以 tar 結尾
wsl --export <Linux分發版名稱> <路徑>

2.5 其它

# 設置默認 Linux 分發版
wsl -s <Linux分發版名稱>
 
# 在不使用默認 Linux Shell 的情況下執行指定的命令
wsl -e <命令行>
 
# 更改新分發的默認安裝版本
wsl --set-default-version <版本>
 
# 更新 WSL2 內核到最新版本
wsl --update
 
# 還原到 WSL2 內核的先前版本
wsl --update --rollback
 
# 更改指定分發的版本
wsl --set-version <Linux分發版名稱> <版本>

2.6 運行 Linux 命令
使用 wsl <Linux命令> 可以在 CMD 或 PowerShell 運行 Linux 命令,示例:

wsl ls -la
以這種方式運行的命令使用的是同一個工作目錄,並且以 WSL 默認用戶的身份運行,擁有與調用方進程和終端相同的 Windows 管理權限。

2.7 混合運行 Linux 和 Windows 命令
# 組合 Linux 的 ls 命令 和 powershell 的 findstr 命令
wsl ls -la | findstr "git"
 
# 組合 powershell 的 dir 命令和 Linux 的 grep 命令
dir | wsl grep git
 
# 組合 Linux 的 ls 命令 和 powershell 的 > 命令
組合 Linux 的 ls 命令 和 powershell 的 findstr 命令
 
# 使用 Linux 命令 列出 Linux 文件
wsl ls -la /proc/cpuinfo
 
# 使用 Linux 命令 列出 Windows 文件
wsl ls -la "/mnt/c/Program Files"

2.8 從 Linux 運行 Windows 工具
WSL 可以使用 [tool-name].exe 直接從 WSL 命令行運行 Windows 工具。 例如,notepad.exe。

以這種方式運行的應用程序具有相同的工作目錄,擁有與 WSL 進程相同的權限,以活動 Windows 用戶的身份運行,顯示在 Windows 任務管理器中。

2.3 linux下訪問windows的網絡服務和windows下訪問linux的網絡服務

從 Windows 訪問 Linux 網絡應用
當在linux中啟動一個網絡服務,比如nginx中放一個網站,然后啟動nginix,想要從windows中訪問linux下nginx中的房展,可以使用 localhost 從 Windows 上訪問 Linux 分發版中的應用。

從 Linux訪問 Windows 網絡應用
這種操作應該很少,但是還是了解一下吧。
如果要從 Linux 分發版訪問 Windows 上運行的網絡應用,則需要使用主機的 IP 地址。 你可以執行以下步驟來使其可行。

通過在 Linux 分發版中運行以下命令來獲取主機的 IP 地址:cat /etc/resolv.conf 。
復制 nameserver 后面的 IP 地址可用於訪問 Windows 上運行的網絡應用。

參考文獻
1、https://blog.csdn.net/tai532439904/article/details/112209312
2、https://www.jianshu.com/p/39a5b2e002b6
3、https://blog.csdn.net/weixin_45027467/article/details/106862520
4、https://blog.csdn.net/qq_43479892/article/details/123591840


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM