Windows Subsystem Linux 筆記

先記錄安裝後要裝的

WLS 安裝部份參考1
PowerShell 先以系統管理員執行:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

##安裝 zsh

1
2
3
4
5
$ sudo apt-get update
$ sudo apt-get install zsh
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh

Exit 退出再進入後,選 2

另外,也推薦一併安裝 Oh My Zsh 以及幾個方便的套件 (zsh-completions、zsh-autosuggestions、zsh-syntax-highlighting) 來達到類似 fish shell 的命令列功能。

1
2
3
4
5
sudo apt-get install git
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

使用 vim 編輯 .zshrc 以啟用 plugin。同時,也建議更換 zsh 佈景主題,因為某些主題疑似因為 Powerline 3字體所以會讓 Console Emulator 沒辦法正常顯示游標位置,至於有哪些主題是沒有問題的可以自行嘗試,這邊將以 bira 為例。

1
2
3
4
5
6
7
8
vi ~/.zshrc
ZSH_THEME="agnoster"
......
plugins=(
… zsh-completions zsh-autosuggestions zsh-syntax-highlighting
)

重新開啟 shell 後,此時我們可以透過 lsb_release -a 或是 screenfetch(安裝指令如下,可參考這篇2文章)驗明正身,確認這真的是一個 Ubuntu Linux 環境。

1
sudo apt-get install screenfetch

WSL 環境下還可以直接執行 Windows 程式,甚至可以透過 pipe 做溝通。例如以下的指令會將 Linux Kernel 的版本資訊複製到 Windows 環境的剪貼簿(即 clip.exe):

1
uname -a | clip.exe

Cmder 設定

佈景 agnoster 是需要用打過 Powerline patch 的字型才能正常顯示的,否則符號部份會成階亂碼,更改 CMD 或 PowerShell 字體是很困難的,在這裡直接使用 Cmder 來做為 Console 。

非Powerline

字形選用打過 Powerline patch 的字型,Meslo LG M Regular for Powerline 字型或 Fira Code 3 都可以

另外,如果有開啟背景圖片,需要將 Main→Background:Replace color indexes設為背景色 (此圖為 #0)

Replace color indexes 01
Replace color indexes 01

[Startup] > [Tasks] 頁面,新增一個 kali 的 Task。其中,-cur_console:p 參數是為了讓方向鍵能正常運作。
kali.exe -cur_console:p

設定 distro

在最新版本的 Windows 10 中,由於 WSL 支援多種 distro,並且這些 distro 是可以同時執行的,所以也多提供了一個工具 wslconfig.exe 可以查詢目前可用的 distro 以及設定預設的 distro。以下示範使用 wslconfig.exe /list 指令列出目前系統上所有安裝的 Linux distro。若需要修改預設設定,可以使用 /setdefault 參數。

為了支援多種 distro,有別於過去的版本只有一個 bash.exe 存在系統中,最新版本的 WSL 又做了一些改變。首先,透過 where 指令(類似 Linux 中的 which)可以看到以下這些執行檔的存放位置。其中,因為目前 Linux distro 是以 Windows App 的型式透過市集發佈的,所以 Ubuntu 與 openSUSE 會各自有一個執行檔存放在 WindowsApps資料夾底下,也是它們各自的進入點。

而這幾個執行檔又有以下的差別:

bash.exe: 進入預設 Linux distro 的 bash shell
wsl.exe: 進入預設 Linux distro 的 default shell
ubuntu.exe: 進入 Ubuntu 的 default shell
opensuse-42.exe: 進入 openSUSE 的 default shell

在 Ubuntu 執行的同時,於新的命令列介面執行 opensuse-42.exe 便可同時運行一個 openSUSE 環境。

Dig 安裝

1
sudo apt-get install dnsutils

參考資料:
-

------ THE END ------