嗨!歡迎回到上班族的命令列生存手冊,終於安裝好 zsh,界面看起來很平淡,這系列文的作者到底為何叫我們安裝這個?你還記得剛剛在調整設定檔(Profile),指定預設的 Shell 時(讀到這裡,發現不知道在打什麼,請回去看上一篇文章。),提到 Warp 設定很簡單,只要調整設定裡頭的下拉式選單即可。用 Warp 操作 Shell 真的爽,會有語法檢查,自動提示什麼的,簡直是打了針、吃了藥,體驗從來沒有這麼好過。
離開 Warp 環境之後(像是在 VS Code、Android Studio 內的終端機),一切恢復原狀,不知不覺產生戒斷症狀。如果其他環境也能用這些方便的功能那有多好!
幸好,網路上的各路大神已經建置了各種好用的 Framework,讀者可以將他們想像成預先設定好的 zsh
環境,各個 Framework 的已經先加上了一些外掛、腳本、設定… 等等,讓 zsh
使用起來更現代、順手。
筆者在這裡介紹自己喜歡的兩個 Framework,讀者依照自己的需求安裝即可(對請裝一個就好,阿我是裝 zim 啦)。分別是:
這兩個 Framework 安裝完後,就會有以下的功能:
圖片來自:zsh for human github
先確定需求,如果你是不想設定各種選項,只想安裝後使用,也不覺得需要客製化,一卡皮箱即可入住!這樣的讀者,請你安裝 zsh for human;反過來說,喜歡安裝各種外掛 plugins 來自定義自己環境的讀者,不喜歡房東附好家具,比較適合使用 zim。不過,如果只是單純安裝 zim 而沒有安裝外掛程式,我也覺得很夠用、好用。
你需要執行作者提供的 Script,不過前面幾篇也提到,不要隨便執行網路上的 Script,就像不要隨便喝陌生人給的飲料一樣。以 zsh for human 安裝為例,開啟他的 Github 頁面,拉到 Installation 通常會附上一組指令,直接在 Shell 上執行就會安裝囉。
if command -v curl >/dev/null 2>&1; then sh -c "$(curl -fsSL https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)" else sh -c "$(wget -O- https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)" fi
可以注意到安裝指令,這是一個 if else 判斷,意思是如果沒有 curl
的話,就用 wget
來抓後面那個網址的 Script。這兩個指令就是拿來抓遠方的檔案的,讀者可以用我們之間的祕密 (man
,如果不知道… 該往前看了!) 來查看怎麼用。
我們直接複製 curl -fsSL https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install
貼在 Shell 上,其實就會把內容印出來了(wget
也是喔。)
然後複製他的內容,去詢問任何一個人類智慧結晶,就可以大致做一點粗略的檢查。筆者在這邊選擇了 Gemini,活在 2025 真好耶!
我的 Prompt 是這樣下的:
Hi! 你是一個 Linux Shell 專家,請問這個安裝 Script 有沒有什麼可疑的或是有害的程式碼?
<貼上複製的程式碼>
來看看 zim,也是直接執行一行即可安裝:
$ curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
不過跟上面說的一樣,別忘了瞧瞧裡面賣什麼藥喔。
來看看怎麼設定 zim 的 themes (主題) 吧,可以選擇的外觀很多,這是一個可以一次練習到熟悉環境篇所有指令的機會。請在 zim 的主題網頁選擇一個自己喜歡的,並且開啟這裡的文件:$ ~/.zimrc
。安裝 zim 後,在家目錄下面會有一個 .zimrc
檔案,請用文字編輯器(nano
, joe
)開啟他。
$ nano ~/.zimrc
例如,用 eriner 這個主題作為範例,在最後一行加入:
$ zmodule eriner
儲存,並執行以下指令:
$ zimfw install
就會安裝 eriner 主題了,其他的 zsh plugin 也能用這個方法安裝。
通常安裝好 Framework 後,就會強烈感受到不一樣的感覺!zsh for human 甚至還會順便幫你設定好界面,安裝的時候也順便調整了 Nerd Font 的顯示 (一切連起來了吧!如果不知道這邊在寫啥,需要看一下 Day 04。再試一下,是不是感覺好很多呢?
整頓了一下環境,一切看起來非常不錯,下個章節我們會來補完熟悉環境篇沒有提到的操作。比如說寫作業最常用的複製… 居然還沒講!!