多虧了 WSL,我順利從 OS X 換到 Windows 10 了
TL;DR: Windows 10 確實不錯,但還沒有好到可以滿足我這個測試工程師的全部需求。如果你也跟我一樣因為工作的關係必須使用 Windows 系統的話,這裡是一些讓我沒這麼痛苦的設置,希望也可以幫助你減緩轉換的痛苦。
WSL
CLI 是我最喜歡的使用者介面,最大的原因是 CLI 指令可以很容易的分享與執行,同時他又可以做版本管理,至於在終端機裡敲各種指令有多酷我就不說了。
WSL 可以透過下面這兩個 PowerShell 指令來啟用與安裝
# Enable WSL
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux# Download Ubuntu 16.04
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
完整的說明文件可以參考官方的 WSL 安裝指南。
Hyper
Hyper 是我目前主要使用的終端機軟體,儘管它有 FPS 偏低、顯示格式常會在變更視窗大小後跑掉的問題,但它目前仍是我認為 Windows 上最好用的終端機軟體。
幸好微軟已經注意到一個好的終端機對 WSL 系統有多重要了,所以在 Microsoft Build 2019 的活動上微軟公開了正在開發中的 Windows Terminal,有興趣的人可以持續關注 Windows Terminal 的發展。
Bash
安裝後的第一件事我會先把 Hyper 用的 Shell 從 PowerShell 換成 WSL 上的 Bash
// .hyper.js
// PowerShell on Windows
// shell: 'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe',// Bash on Windows
shell: 'C:\\Windows\\System32\\bash.exe',
然後是設定 SSH 金鑰,個人習慣是把私人與工作用 Key 用 Email 區分開來並且透過 ssh-agent 管理。
.bashrc# Git
eval $(ssh-agent -s)
ssh-add $HOME/.ssh/chinglong.su.gmail.com
ssh-add $HOME/.ssh/dinosu.kkbox.com
然後設定一些每天都會用到的指令像是 open
, google
.bash_aliases# 例,開啟目前所在的資料夾: "open ."
open() {
powershell.exe start $1
}# 例,在 Google 搜尋科科測試: "google 科科測試"
google() {
open "https://google.com?q=${1}"
}
另外特別值得一提的是在 WSL 內存取 Windows 指令時有些特別不便的地方,像是要呼叫 adb
的話你必須使用 adb.exe
不然就會找不到,還好透過設定 alias 就可以無須改變原先的使用習慣。
.bash_aliasesalias adb=adb.exe
alias docker=docker.exe
而要透過 Bash 來使用執行 .bat
的話則是要呼叫 cmd
.bash_aliasesuiautomator() {
cmd.exe '/C C:\Users\dinosu\AppData\Local\Android\Sdk\tools\bin\uiautomatorviewer.bat'
}
要快速轉換 WSL 路徑或 Windows 路徑的話則可以使用從 17046 版本 開始提供的 wslpath
,使用方法如下
wslpath usage:
-a force result to absolute path format
-u translate from a Windows path to a WSL path (default)
-w translate from a WSL path to a Windows path
-m translate from a WSL path to a Windows path, with ‘/’ instead of ‘\\’
例: wslpath ‘c:\users’
透過上述這些設置,多數在 OS X/Linux 上指令都可以在 WSL 裡延續使用,目前比較苦惱的是我覺得微軟的輸入法好難用,好難適應啊!