提綱
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