用 Zsh 配置 shell 終端
說明
一般的作業系統會自帶 bash shell ,但是 bash shell 不是很好用,是以決定做一個更新,提高開發效率
1. fish shell
最開始安裝的是 fish shell ,這個 shell 的優點就是使用預設配置,就可以滿足絕大部分的開發需求(提示、補全、曆史)。
1. 安裝
# Mac 下
brew install fish
# Ubuntu Linux
sudo apt install fish
2. 使用
# 指令行輸入 fish 即可進入 fish shell 環境,自動補全、提示等功能都是預設的不需要設定
fish
3. 棄用原因
最主要的原因就是與 bash 的相容問題,有些 bash 的腳本不能夠執行
# 例:在配置 nvm 的時候要建立一個檔案有如下内容
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# 會有如下報錯
# fish: Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'.
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# ^
# 原因是 fish 不支援 &&
2. zsh shell
Zsh 是相容 bash 的,而且插件、主題豐富、更适合 DIY
1. 安裝
# Mac
brew install zsh
# Ubuntu Linux
sudo apt install zsh
2. 将 zsh 設定為預設的腳本
chsh -s $(which zsh)
3. 使用
# 指令行輸入 zsh 進入
zsh
3. oh-my-zsh
Oh My Zsh是一款社群驅動的指令行工具,它是基于 zsh 的,提供了主題配置、插件機制、内置的便捷操作等,可以說是 zsh 的指令行擴充
1. 安裝
先要確定 zsh 已經安裝
# curl 安裝
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# wget 安裝
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
2. 使用
安裝後進入 zsh 指令行就會自動使用 oh-my-zsh 的配置
3. 配置主題
安裝 oh-my-zsh 時,官方提供的主題就已經下載下傳到 ~/.oh-my-zsh/themes/
下,按照如下方式安裝
# 編輯 .zshrc 配置檔案
vi ~/.zshrc
# 在檔案前部分找到 ZSH_THEME 配置,設定值為在 ~/.oh-my-zsh/themes/ 下看到的主題名即可
ZSH_THEME="ys"
# 或者可以設定随機主題,這樣每次開啟終端都是一個新的主題
ZSH_THEME="random"
# 如果設定的是随機主題,在新打開的終端中輸入如下指令
echo $ZSH_THEME # 傳回目前 zsh 主題名,随機主題會傳回 random
echo $RANDOM_THEME # 傳回目前随機主題的名稱
# 找到合适的主題後,可以回到 ~/.zshrc 設定為固定主題
4. 安裝插件
預設設定沒有指令提示和補全,需要安裝插件,安裝 oh-my-zsh 時,官方提供的插件下載下傳到了 ~/.oh-my-zsh/plugins/
# 編輯 zshrc 配置檔案
vi ~/.zshrc
# 在檔案後半部分找到 plugins=(git) 需要什麼插件能在 ~/.oh-my-zsh/plugins/ 中找到的直接加進去就可以,用空格隔開
plugins=(git zsh-autosuggestions zsh-syntax-highlighting history-substring-search)
# 儲存退出後,重新打開終端就可以使用了
5. 安裝非官方主題和插件
官方網站給出了安裝方法
6. 推薦插件
推薦三個用于指令提示、和補全的插件
- zsh-autosuggestions 安裝方法
- zsh-syntax-highlighting 安裝方法
- history-substring-search 安裝方法