Oh My Zsh

Zsh 是工程師們的好夥伴,相較於大部份發行版內建的 Bash,改進了 Tab 的補全和萬用字元等功能,同時兼容 POSIX 的 sh,在輸入指令時按 Tab 就可以快速補全指令,大幅增加開發的效率,同時,Zsh 提供高亮樣式,賞心悅目,讓終端機的使用體驗更上一層,而 Zsh 設定檔配置過程較為複雜,於是有了 oh-my-zsh 這個以社區為驅動的開源配置框架,內置多種實用函數、外掛、主題,由於簡單好配置,oh-my-zsh 也成為新手使用 Zsh 的第一步。

安裝 Zsh

安裝 Oh My Zsh 前先確保系統有安裝 Zsh,可以用下面指令檢視當前使用的殼層(shell)。

1
$ echo $SEHLL

安裝 zsh 包。

Ubuntu

Zsh 已經被 Ubuntu 收錄至官方儲存庫中。

1
2
$ sudo apt update
$ sudo apt install zsh

CentOS

1
2
$ sudo yum update
$ sudo yum -y install zsh

Arch Linux

1
$ sudo pacman -S zsh

安裝完成後輸入指令看已安裝的 Shell,如果最下方有出現 zsh 就表示安裝成功。

1
2
3
4
5
6
7
8
9
$ cat /etc/shells
# Pathnames of valid login shells.
# See shells(5) for details.

/bin/sh
/bin/bash
/usr/bin/git-shell
/bin/zsh
/usr/bin/zsh

將 Zsh 設為預設殼層

如果你希望每次登入都使用 Zsh,需要修改預設殼層。

列出目前系統所有的殼層。

1
$ chsh -l

選擇 Zsh 作為預設殼層。

1
$ chsh -s $(/usr/bin/zsh)

然後重啟終端機看設定有沒有生效。

安裝 Oh My Zsh

官方提供了一鍵腳本,直接下載執行就裝好了,如果有更新會在開啟終端機時提示要不要更新,如果選是的話會自動 git pull 更新內容。

curl

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

wget

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

設定

Zsh 設定檔位於家目錄下,名為 .zshrc,環境變數的設定也寫在這個檔案裡,我們來設定一下。

1
$ vim ~/.zshrc

選擇主題

Oh My Zsh 中有多款漂亮的主題,可以到官方 GIthub 看截圖,選擇自己中意的樣式。

當你選好主題後,修改 ~/.zshrc 的環境變數 ZSH_THEME

1
ZSH_THEME="robbyrussell"

注意:有些主題(如:agnoster)需要安裝 Powerline Fonts 才能正常顯示字體。

Powerline 字體安裝

1
2
3
$ sudo apt-get install fonts-powerline # Ubuntu/Debian
$ sudo dnf install powerline-fonts # Fedora/RHEL
$ sudo pacman -S powerline-fonts # Arch Linux

如果你希望生活中多點變化可以選擇隨機主題,每次啟動 zsh 時電腦會隨機幫你挑選一款主題。

1
ZSH_THEME="random"

也可以從指定的主題列表中隨機選取。

1
2
3
4
ZSH_THEME_RANDOM_CANDIDATES=(
  "robbyrussell"
  "agnoster"
)

啟用外掛

提到 oh-my-zsh 就不能不提到強大的外掛系統,裡面有非常多實用的函數,只需要在設定檔中啟用即可使用,你可以查看 oh-my-zsh 的 Wiki 看有哪些可用的外掛。

注意:啟用太多外掛會拖慢 Zsh 的啟動速度。

修改 ~/.zshrc,修改 plugins 的地方,plugins 是個清單,應該長的像下面這樣。

1
2
3
4
5
6
7
8
9
plugins=(
  git
  bundler
  dotenv
  osx
  rake
  rbenv
  ruby
)

注意:外掛之間只能用空格、Tab、換行來隔開,不能用逗號分隔

基本上要用什麼外掛就看自己的需求,我用的外掛也很少,只有下面幾個。

1
plugins=(git extract cp torrent)

強烈推薦 extract 外掛,只需要一句 extract xxx.zip 就能解壓縮各種格式的壓縮檔,非常方便,當然你系統也要安裝相應的解壓縮工具,只是 extract 幫你做 alias 了;自從有了 extract,我就不記解壓縮指令了 (不良示範請勿學習)。

Reference