bash -> zsh

前言

因為朋友推薦,前陣子開始轉移使用 oh-my-zsh,起初覺得用了很久的 bash 已經夠好用了,真的有需要轉移到 zsh 上嗎?但經過使用一個月的心得,我能告訴您 ,zsh »> bash。

本身是使用 macOS,不確定使用 Windows 的朋友是否能夠如法砲製,zsh 相比 bash 有許 多的優點,像是:

  • 不區分大小寫(方便 tab 補齊路徑名)
  • 能夠上色,有多種主題
  • 能夠顯示 git branch 分支狀態

接下來就來說 zsh 的安裝方法:

  1. 安裝 zsh
  2. 安裝 oh-my-zsh
  3. 安裝 zsh-completions
  4. 修改設定

安裝流程

安裝 zsh

brew install zsh
  • 並且將預設的 bash 修改為 zsh:

    chsh -s /usr/local/bin/zsh    # change shell to zsh
    
  • 若日後要換回原廠預設的 bash:

    chsh -s /bin/bash             # change shell to default bash
    

安裝 oh-my-zsh

git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

預設路徑是在 ~/.oh-my-zsh,若想裝在別處要修改 ~/.zshrc

zsh 的設定檔放在 ~/.zshrc 就像 bash 的設定檔放在 ~/.bashrc 一樣,而這個檔案 需要我們自己產生,這裡建議使用 oh-my-zsh 的模版比較簡單:

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

安裝 zsh-completions

brew install zsh-completions

再這裡還要記得打開 ~/.zshrc 來加入 zsh-completions 的補全功能:

code ~/.zshrc   # open ~/.zshrc by VSC

加入一行 zsh-completions 對應的路徑:

# zsh-completions
fpath=(/usr/local/share/zsh-completions $fpath)

最後 rebuild zsh 的 .zcompdump

rm -f ~/.zcompdump; compinit

修改設定

基本上到這步,zsh 該有的功能都已經有了,但我們仍然可以做一些設定讓它更好用!

切換主題

主題們在 ~/.oh-my-zsh/themes 中,切換主題的方式是修改 ~/.zshrcZSH_THEME,預設是 robbyrussell,像我就改成 agnoster

# THEME Config
-ZSH_THEME="robbyrussell"
+ZSH_THEME="agnoster"

重新登入看看,zsh 的主題應該已被更換!

agnoster 這個主題需要將 Terminal 的字體換成 Monoco for Powerline,原廠是沒有的, 他可以顯示 git 狀態及有美麗的顏色主題。

啟用插件

插件們在 ~/.oh-my-zsh/plugins 中,啟用方式和主題類似,修改 ~/.zshrcplugins,例如要啟用 brew,只要修改預設只有 git 成:

-plugins=(git)
+plugins=(git brew)

其它

zsh 一樣具備 alias 的功能,只要在 ~/.zshrc 中加入:

alias xx="path_name"

像我常進一個很長的資料夾,就會加入

alias cdtb="cd ~/Library/Mobile\ Documents/3L68KQB4HG~com~readdle~CommonDocuments/Documents/textbook"

以上就是 zsh 大致上的介紹了!