2016年上半年的時候,微軟在推出的windows 10 內部預覽版中搭載了用戶期待已久的windows subsystem for linux (WSL)服務,用戶只要開啟這項服務就能夠在windows系統上體驗原生的Linux bash指令操作。下面我們就介紹下在使用這項服務的經驗:
一:安裝WSL子系統
盡管微軟有志于將Linux命令行操作體驗整合到Windows系統下來,WSL也作為一項獨立的windows服務引進,但這項服務默認是不開啟的,要體驗Linux需先開啟該服務。你有兩種方式開啟這項服務:
- 控制面板->程序和功能->添加Windows功能和服務->勾選Windows subsystem for Linux
- Powershell命令行
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
至此,你的電腦已經在策略上允許使用Linux子系統了,但是這項服務本身并不包含Linux子系統本身,你需要額外安裝相應的Linux系統才行。你有三種途徑安裝Linux子系統:
- 從Windows Store下載相應的發行版
- 通過命令行安裝
- 下載發行版,然后手動解壓安裝
1.1 從Windows Store 安裝
打開Windows Store 搜索Linux,Store會為你推薦目標答案:
點擊“Get the apps”進入以下頁面:
展示了目前支持的幾個發行版,均以windows metro 應用的方式發布。選擇相應的版本安裝即可。
1.2 命令行安裝
從Windows Store安裝Linux簡單方便,但不適用于所有情況,比如系統版本低于16215 Windows Store不提供可直接下載安裝的發行版或者Windows Server版中Windows Store因安全因素考慮被禁止使用,這時候用戶可以手動下載這些Linux 發行版APP進行安裝。
下載地址如下:
Ubuntu 18.04:https://aka.ms/wsl-ubuntu-1804
Ubuntu 18.04 ARM:https://aka.ms/wsl-ubuntu-1804-arm
Ubuntu 16.04:https://aka.ms/wsl-ubuntu-1604
Debian GNU/Linux:https://aka.ms/wsl-debian-gnulinux
Kali Linux:https://aka.ms/wsl-kali-linux
OpenSUSE:https://aka.ms/wsl-opensuse-42
SLES:https://aka.ms/wsl-sles-12
我們以安裝 Ubuntu 16.04 為例講解如何通過命令行安裝WSL。
1.2.1 下載Linux發行版
下載方式有很多,你可以選擇自己喜歡的任何方式下載。
# PowerShell 中使用Invoke-WebRequest 指令
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
或
# CMD 中使用curl指令,該指令Windows 10 2018春季版及以后可使用
curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604
或 直接點擊鏈接下載或將連接復制到下載器中下載。下載文件保存為 xxx.appx即可。
1.2.2 安裝下載的appx文件
# PowerShell
add-appxpackage /path/to/xxx.appx
或解壓下載的xxx.appx后從解壓文件手動安裝,參加小節1.3.
1.3 手動解壓安裝
在我們使用1.2.1中的方法下載Linux發行版后,得到文件xxx.appx。這時候我們可以通過解壓appx文件來安裝應用,具體:
- 重命名xxx.appx文件為xxx.zip,
Rename-Item /path/to/xxx.appx /path/to/xxx.zip
。 - 解壓zip文件,
Expand-Archive /path/to/xxx.zip /path/to/xxx
,確保/path/to/xxx
在系統盤。 - 進入解壓目錄運行發行版加載程序,如
ubuntu.exe
,完成安裝。
- 幾點注意事項:
- 從Windows Store 安裝Linux子系統需要windows版本在16215及以后。
- WSL只能運行在系統盤,默認是C盤,請確保WSL安裝在C盤。如果你在設置中更改了APP的默認安裝位置,則在通過Windows Store安裝WSL之前需先將默認安裝位置改為系統盤,以便Linux發行版能正確安裝在系統盤。
- 命令行環境,包括:CMD、Powershell 和 WSL 不允許在Windows 10 S 上運行。
二:修改WSL默認登陸用戶
安裝完WSL,用戶即可運行程序來實例化一個Linux運行環境。首次啟動應用程序時,需要等待程序完成一些初始化操作,之后程序將會向用戶要求設置一個用戶名,這個用戶名是用來登陸WSL的默認用戶。每次啟動程序,將自動使用該用戶登陸,不需要用戶輸入密碼,用戶只有在執行sudo
等高權限指令的時候才會被要求輸入密碼。
用戶可以修改默認登陸用戶,例如對于Ubuntu發行版, ubuntu config --default-user root
可設置默認使用root身份登陸WSL。這是很有用的,當你忘記了普通用戶的密碼后,可以通過這種方式進入root模式來修改或重置普通用戶的登陸口令。
三: 其他
1. 修改Ubuntu終端默認字體
WSL默認字體根據系統版本和區域語言設置各有不同,用戶可以按下圖中終端默認字體設置過程調整終端使用的默認字體和字體大小。修改默認字體后,下次打開終端會自動應用設置的默認字體。
如果默認字體設置無效,重啟終端設置丟失,可能是字符編碼的問題:你的終端包含了當前字符編碼不支持的字符。可通過設置默認字符編碼解決。
window 命令行默認的字符編碼格式在 我的系統上是 UFT-8,可以如下圖所示查看:
也可使用命令行指令:
cmd /C chcp
查看。還可以通過修改注冊表鍵值的方法更改默認字符編碼:
設置后,自定義配置應該不會丟失。為保證較好的兼容性,我們開啟windows 區域和語言設置 中的 非unicode 程序語言,使用unicode utf-8 提供全球語言支持,有效減少字符與編碼的不兼容導致的問題。典型案例就是Tmux自定義主題中狀態欄多行(不能一行顯示)的問題。