嗨!歡迎回到上班族的命令列生存手冊,軟體用起來要爽,不外乎「我要快樂,我要能睡得安穩。」阿妹都已經告訴我們。一天到晚炸來炸去這種刺激的人生,對生活和身體都不好。那快樂呢?有沒有什麼方法可以提昇使用命令列的體驗?還真的有!這章節要討論的是 Shell,如果你忘記了什麼是 Shell,請去看 Day 02 的章節。
雖然各大 Linux 發行版和 macOS 內建了預設的 Shell,不過 Shell 只是個軟體,也是可以替換的。
在說明怎麼更換 Shell 時,要先說明一下我們還有什麼選擇?前幾個章節有提到各個不同的內建 Shell,像是 macOS 內建 zsh,其他發行版可能是 bash 或是 dash … 等等。
要從裡面選一個,我推薦大家可以考慮安裝 zsh。當然,這個跟軟體工程師的鄙視鏈提到的完全無關,但顯然我無法想像不用 zsh。
各大發行版的安裝應該也很容易,只需要鍵入:
$ dnf install zsh
請自行置換成你的發行版對應的 package manager(像是 apt
),homebrew 使用者則使用:brew
即可。
安裝完後有一些需要設定的部份,稍嫌龜毛,初學者可能會不太知道該怎麼操作。
You are seeing this message because you have no zsh startup files (the files.zshenv, .zprofile, .zshrc, .zlogin in the directory ~) ・ This function can help you with a few settings that should make your use of the shell easier.
在沒有安裝過 zsh 的前提之下,安裝界面會偵測到目前電腦沒有 zsh 的設定檔,這一步請按下 1,繼續設定。如果因為某些原因,你的電腦已經有 zsh 的設定檔,那就會直接看到下面那個畫面。
首先應該會看到這個互動介面,我們會依序按下 1、2、3 來設定一些基礎項目。請按下 1,進入歷史紀錄設定。
又是一個三連選單,如果沒有特殊的考量,一般來說請按下數字後,直接按下 Enter,選擇預設值即可。
像是這樣:
三個步驟都設定後,按下 0 儲存設定,並且回到前面那一頁。接著按下 2,來設定自動提示的系統,進入後使用 1 選項(Turn on completion with the default options.
)即可。接著到第 3 步,設定 Shell 的 keybinding,進入 3 後,進入另外一個設定選單,選擇 1 項目 Change default editing configuration
。
這邊請選選擇 n not to set a keymap (allow shell to choose)
再按下 0 離開這個設定。三項都設定完成之後,來到主要選單,按下 0 離開,這樣 zsh 就安裝完成啦,讀者會看到一個很陽春的介面。
這樣,進入 bash 或是 dash 等預設 Shell 後,鍵入 zsh
就可以進到 zsh 啦。
讀者可能會在網路上查到使用 chsh
指令來更換預設的 Shell,不過在這之前先介紹建立設定檔(Profile)的方式來調整一開啟 Terminal Emulator 看到的 Shell。在前幾章推薦的 Terminal Emulator 都有提供設定預設 Shell 的功能,大多數發行版甚至 Windows、macOS 預設的終端機程式都有內建。
最常見的設定方式是新增設定檔 (Profile),比如 Ptyxis,Windows Terminal,甚至是 iTerm 都有提供,請新建一個設定檔,並將預設的終端機設定為 zsh
。
而像是 Ghostty,是在設定檔裡面調整。Warp 則最簡單,直接用下拉選單選擇 zsh
即可。
設定檔裡頭,無論是 Profile 或是文字設定檔,通常都會請你填一個自訂命令 (Command),當成這個 Terminal Emulator 第一個執行的指令,該從哪裡取得這個指令呢?
請先進到 zsh
裡頭,怎麼知道 zsh
從哪裡叫的呢?請使用 which
指令:
$ which zsh
就會印執行指令給你啦,有可能會印 /usr/bin/zsh
,請把指令印出來的那串貼到設定檔裡頭即可。
事到如此,難道只能用這個白白的界面嗎?那我不如回去用 OOOO (請自行填入)!先別急!下一個章節會來解決太白的問題,請記得回來收看喔。