[Mac] iTerm2 + Oh My Zsh + Powerlevel10k Shell 改造設定教學


是不是常常看到一些朋友同事的端終機(Terminal)特別的炫麗又超多功能?不用羨慕,教學在此!本文將在Zsh Shell環境下,搭配 iTerm2 、 oh-my-zsh 、 Powerlevel10k 這些大家常推薦的工具組合,快速的打造一個與眾不同的終端機操作環境,不但可以加強操作效率,而且畫面酷炫,即便在工作心情也會跟著好了起來。文章上可能會有點長,但每個步驟都是我自己測試過,寫的詳細一點是為了讓沒接觸過的人更好上手,但其實每個步驟都沒有很難的,會盡量簡化所有的設定步驟,讓各位照表操課就可以打造出絕美終端機。

示範環境:macOS 10.15.7、11.2.3,若OS是Linux也可以參考,設定大都是一樣的

推薦閱讀:[Mac] iTerm2 + ZIM + Powerlevel10k 速度更快的終端機美化教學

名詞小教室

第一次接觸的人可以不知道上面的這些工具的用途是什麼,所以這裡先簡單的說明一下各名詞、工具的意義為何,讓大家比較有一個概念,有解釋錯誤的話也請大家留言糾正

工具名稱 說明
Shell 簡單的來說就是用戶和系統核心(Kernel)溝通的橋樑,透過Shell的指令來讓Kernel執行各項操作,而Shell有很多,以Linux的環境境來說,常見的就有Bash、Tcsh、Ksh、Zsh、Fish等
Zsh 全名為「Z shell」,為功能強大的Shell,也是今天的主角之一,macOS在Catalina (10.15) 後,也將原本預設的shell由bash轉換成zsh了
iTerm2 在Mac平台上的加強型終端機,用來取代原生的終端機程式,當然終端機工具也很多,大家可以依自己的平台選擇習慣的就行
oh-my-zsh 一個功能強大的Zsh設定框架,怎麼解釋呢?Zsh是個很強大的Shell,但在設定上相對就複雜許多,所以許多社群就熱心開發了容易幫Zsh進行設定的功能框架出來,而不同的框架就有不同的特色,on-my-zsh就是其中一個,其他還有ZimZplug (Zsh Plugin Manager)等
Powerlevel10k 很受歡迎的一套Zsh主題,它強調速度、靈活性和開箱即用的體驗,也是本文的重點項目之一,更早之前大家都是安裝Powerlevel9k,現在有新版了喔,所以請記得安裝Powerlevel10k,本文簡稱「p10k

1. 確認環境 / 安裝Zsh

macOS Catalina (10.15) 以上,預設的 shell 已經是Zsh,已不需要安裝,或者可先以下指令來查看目前的Shell是否為Zsh:

ⓞ 查看看前使用哪個Shell

echo $SHELL

若非Zsh,則可先查詢環境中有的Shell,也許環境已經具備了,只是我們不知道或有切換到而已,所以先查詢目前有哪幾個Shell可用

ⓞ 列出目前環境中有哪幾個Shell

cat /etc/shells

如果有Zsh Shell的話,則可以進行切換,例如如果你目前的Shell是Bash,想切換到Zsh就可以執行以下指令

ⓞ 切換Shell到Zsh

chsh -s /bin/zsh 或 chsh -s $(which zsh)

ⓞ 確認自己的環境沒有Zsh的話,則依下列指令進行安裝

brew install zsh

其他平台則請依各作業系統查看安裝Zsh的方法,在此提供Ubuntu的安裝方法

# For Ubuntu
sudo apt update
sudo apt install zsh

2. 安裝 iTerm2

iTerm2目前只適用Mac平台,可透過下面二種方式來進行安裝

方式一

iTerm2下載Zip檔,解壓後執行或者拖拉到Application目錄中,建議是直接放到Application中,我自己是採用這個方式來安裝

方式二

透過Homebrew進行安裝,指令如下

brew cask install iterm2/code>

iTerm2的一些小技巧不會在本文中提及,不過如果要讓iTerm2的配色有點變化的話,可以參考「iTerm Theme」來選擇配色方案

3. 安裝 Oh My Zsh

Oh My Zsh 官方提供curlwgetfetch三種方式讓用戶安裝,各位擇一安裝即可,另外,因為Oh My Zsh是基於Zsh上運行,所以網站也有提供各平台安裝Zsh的方法,大家也可以參考

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

3.1 小試身手,變更主題 (欲安裝p10k主題者可略過)

到這個步驟其實你的終端機就可以做很多變化了,我們可以先熱身一下,試試變更主題:Zsh主要的設定檔在「~/.zshrc」,可藉由修改其中的「ZSH_THEME」參數來指定主題,例如:agnoster 或 ys,不知道有哪幾個主題可以選擇的話,可以到「~/.oh-my-zsh/themes」查看可以設定的主題名稱,或者到zsh的「Github」中直接觀看主題的配色(有畫面),記得有修改的話要source一下,簡單步驟如下:

用自己慣用的編輯器編輯「~/.zshrc」檔

vi ~/.zshrc

修改「ZSH_THEME」的值並儲存離開,本例以主題「ys」為例

Zsh參數ZSH_THEME主題設置

執行source指令,讓設定檔生效,最後重開終端機就可以看到美美的畫面囉

source ~/.zshrc

出現亂碼的畫面? 用 Powerline 字型就可解決

因為有些主題會有特別的圖示需求,如果沒有相對應的字型來呈現的話,那就會呈現亂碼,所以通常會加裝「Powerline」字型,我個人的偏好則是「Meslo Slashed」的「Meslo LG M Regular for Powerline.ttf」,請下載自己喜愛的字型然後進行安裝,接著在iTerm2中進行字型的更改就可以解決亂碼的問題。

設定方法為:進入iTerm2的「Preferences」→ 選擇「Profiles」→ 切換到「Text」頁面後於「Font」選項中設定 即可,如下圖所示:

Zsh參數ZSH_THEME主題設置

4. 安裝 Powerlevel10k

4.1 安裝 Nerd Fonts

在正式進入進行p10k安裝之前,我習慣先處理字型問題,因為p10k這個主題有用到一些比較特殊的圖示,所以上述所提到的Powerline字型不足以顯示,需要安裝更強大的「Nerd Fonts」字型,這連結有許多字型,請自己選擇喜歡的字型即可,不過網路上還蠻多人推「Hack」字型 (用搜尋的方式尋找,並下載Zip檔後解壓安裝即可);另外,p10k官方Github上推薦的字型為「MesloLGS NF」,我個人是使用官方推薦的,供大家參考。

這邊再提供一下我的實際安裝經驗給大家參考:我共有二台MAC一台是macOS Catalina 10.15.7,在安裝字型上沒有特別的問題,但另一台macOS Big Sur 11.2.3在進行字型安裝時,有發現安裝完後無法立即使用的情況,即字體簿看不到安裝的字型,所以有一種安裝失敗的假象,如果你也有這種情況,那可以「重開電腦」使之生效,供大家參考。

註一: 雖然在設定p10k的時候會協助安裝字型,但網上有文章指出有時候會出錯,所以建議可以事先自己把所需字型安裝好
註二: 安裝完 Nerd Fonts 字型後,請參考「 3.1 」節,設置 iTerm2 的字型
註三: 如果下載Nerd Fonts安裝失敗,可參考下面的「5. 補充資訊」說明

4.2 安裝 p10k

p10k提供不同設定框架的安裝方式,因為本文我們是以Oh My Zsh為例,所以安裝方式如下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

接著同樣到 ~/.zshrc 中,將「ZSH_THEME」設定為 p10k 主題,如下所示。記得設定完成後,source一下檔案,忘記怎麼做的話請參考上面的「3.1」節

ZSH_THEME="powerlevel10k/powerlevel10k"

再來請直接重啟iTerm2,便會出現p10k的設定畫面(如下圖),按照畫面的說明來選擇即可,問題不會很難,而且在設定畫面上,也會提供設定完後的結果來供我們參考,此外,設定中有個問題是會詢問是否自動把p10k加入「.zshrc」中,建議選擇自動加入,待設定完成後便會在「家目錄」中生成p10k的設定檔 .p10k.zsh,該檔案會記錄一些重要的p10k設定。

p10k configure 設定畫面

註一: 因為我們先安裝了字型,所以不會跳出字型安裝的詢問畫面,否則通常會跳出詢問用戶是否安裝字型的畫面,如果前面沒有安裝字型的人,可以在這個階段補上Nerd Fonts
註二: 設定錯了或後續想修改設定的話也沒關係,只要在終端機中直接輸入「p10k configure」就可以重新進行設定,如果你是高手的話,則可以直接編輯「~/.p10k.zsh」這個檔案

最後的設定完成後,就可以看到漂亮的畫面了,如果沒有立即生效的話,記得重開終端機試試,至於如果還要更炫或更多功能的呈現,那就要再深入進行p10k的進階設定,後續有機會再來談這一塊。

Powerlevel10k 設定完成畫面

4.3 設定 Mac 原生終端機字型

這是非必要的,但如果各位有時候會用到原生Terminal的話,那建議還是調整一下字型,避免出現圖示亂碼的情況:請進入終端機的「偏好設定」,在左邊選擇你要設定的主題,然後選擇適合字型以避免出現亂碼,例如可以選擇剛剛為p10k所安裝的MesloLGS NF字型,接著視情況勾選「柔邊處理文字」,我的情況是如果沒勾此選項的話,會發現字體不滑順、很粗糙

設定mac終端機的字型

5. 補充資訊:使用 Homebrew 安裝字型

如果你發現下載的字型透過點擊或「字體簿」安裝都失敗,那麼可以使用「 Homebrew 」這個套件管理工具進行安裝,優點是後續如果要進行同樣的安裝動作,或者安裝其他軟體的話就很方便,缺點是這套工具檔案蠻大的

如果你的Mac還沒有安裝 Hmoebrew ,那請先安裝這個套件管理工具

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

如果知道要安裝的字型名稱,則可以直接安裝,如下面的指令是直接安裝Hack字型:

brew tap homebrew/cask-fonts (要安裝字型需執行此指令)
brew install font-hack-nerd-font
brew untap homebrew/cask-fonts (確定不需安裝字型了就可以untap)

如果不知道字型名稱的話,則可以用下列指令進行查詢

brew search nerd

除了 HackMesloLGS NF 字型外,下面這幾個字型也蠻多人使用,推薦給大家

  • Fira Code
  • Source Code Pro
  • Cascadia

延伸閱讀:
Terminalizer § Terminal (終端機) 錄影工具,可匯出GIF動態檔
ExFAT格式 – 讓Windows、Mac OS共用隨身碟或外接硬碟