在 Windows 10 上更好的使用 Subsystem CLI

Ray Yuan Liou
Oct 31, 2017 · 6 min read
fish on Windows

在 Windows 10 創作者更新 (Creator Update) 後,Windows 提供了 Linux 子系統,使得在 Windows 上操作 bash 變為可能。在這個更新之中, Linux 子系統尚在 beta ,需要開啟開發者模式才能將 Linux 子系統開啟。

在秋季創作者更新 (Fall Creator Update) 之後,Linux 子系統由 beta 畢業,可以直接在 Microsoft Store 下載需要的子系統便能使用。一些工具設定的方式與創作者更新 (Creator Update) 有差別,需要做一些調整。
在這裡分享我在秋季創作者更新 (Fall Creator Update) 之後,如何對 Linux 子系統,及 Windows 上的 Terminal 應用程式做相關的設定。

本篇將以秋季創作者更新 (Fall Creator Update) 為主,大綱如下:
1. 如何啟動 Linux 子系統
2. Cmder 相關調整
3. 安裝 fish ,及切換啟動預設目錄
4. 總結

如何啟動 Linux 子系統

子系統可以在 Microsoft Store 取得,以一般安裝市集 App 的方式下載安裝。目前提供的有 Ubuntu (本例)、openSUSESUSE Linux Enterprise Server,發表會上的 Fedora 目前在 Microsoft Store 中還找不到 (2017/10/31)。

可以在市集中取得 Ubuntu

如果無法安裝,也許是 Linux 子系統功能沒有啟動。
可以按下 [Windows 鍵] + S ,輸入:Windows 功能,
開啟「開啟或關閉 Windows 功能」。

Win + S , Windows 功能

向下捲動找到「適用於 Linux 的 Windows 子系統」,將它句選,
可能需要重新開機。

Cmder 相關調整

Cmder 是 Windows 上面的 Terminal Emulator,提供了更多客製化的功能,例如:多分頁、CMD & Powershell & 子系統多開和快速顯示與隱藏視窗…等功能。但如果沒有這些需求,其實內建的 CMD 即可滿足絕大部分的使用情形。

Cmder 可以直接在官網下載 mini 版。如果有安裝 Scoop ,可以直接在 Powershell 下指令安裝。

scoop install cmder

Cmder 預設使用 Windows 的 CMD ,需要建立一個新的 Profile ,使它能夠使用 Linux 子系統。

由程式的右下角選單,進入 Setting。
右方找到 Startup -> Tasks ,在右方的視窗中按下 +。

從右下角選單進入設定
找到 Startup -> Tasks,新增新的 Predefined tasks

在 Command 欄輸入 (這裡以 Ubuntu 為例,其他子系統需要確認它的執行檔名稱,並且本例 Windows 安裝於 C 碟),取一個喜歡的名子。

C:\Users\{Your_Username}\AppData\Local\Microsoft\WindowsApps\ubuntu.exe -cur_console:p
輸入 Command

接著就能從右下角的 + 來啟動剛剛設定好的 Task。
(如果畫面卡著,試著再啟動一次,不知道為啥有這種問題 🤫)

啟動剛剛建立的 Task

為 Cmder 設定快速的隱藏與顯示
開啟 Cmder 的 Settings,到 Keys & Marco,修改 Minimize/Restore 的快速鍵設定即可。

安裝 fish ,及切換啟動預設目錄

本篇以筆者習慣的 fish 為例,其他的 Shell 需要自行研究一下。

$ sudo apt-add-repository ppa:fish-shell/release-2
$ sudo apt-get update
$ sudo apt-get install fish

欲將 fish 設為預設的 Shell,可以把下面的設定加入 ~/.bashrc

# Launch Fish
if [ -t 1 ]; then
exec fish
fi

切換預設啟動的目錄

Windows 的 Linux 子系統,預設啟動的地點不是一般習慣的家目錄,故修改預設啟動時直接導到 Windows 的使用者資料夾。
要在 Linux 子系統找到 Windows 的磁碟目錄,路徑是:

/mnt/{disk_letter}/C disk:
/mnt/c/

故我們只需要在上方提到的 ~/.bashrc 加入下列指令即可

# Launch Fish
cd /mnt/c/Users/{Your_username}
if [ -t 1 ]; then
exec fish
fi

總結

Windows 上面終於可以使用 Unix shell 令人驚喜!
無奈的是筆者受 macOS 影響太兇了,反而是日常操作都有了一些狀況(抖)。

氰化鉀!!!!!

撇開一些系統日常操作不談,CLI 的操作終於變得比較熟悉,又是那個熟悉的杏仁味,使用起來得心應手,一些常用工具也能用了。

欸怎麼一直在寫 Terminal 阿

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade