Skip to main content

ZSH & BASH 比較

為什麼選擇 ZSH 而非 BASH?​

BASH 的局限性​

BASH 是一個功能強大的 shell,但在特定情況下可能會顯得不足。它的自動完成功能相對簡單,擴展性有限,當需要更複雜的腳本或操作時,往往需要依賴其他編程語言如 Perl 或 Python。

ZSH 的優勢​

  1. 更強大的自動完成功能:ZSH 的自動完成不僅功能豐富,還能根據上下文提供更精確的建議,讓使用者在編寫命令時更加高效。

  2. 豐富的擴展功能:ZSH 擁有豐富的插件和主題庫,這些擴展功能能增強 shell 的功能,甚至能夠大幅提升終端的使用體驗,如美化外觀和提高生產力。

  3. 更好的兼容性:ZSH 與大部分 BASH 腳本兼容,並且提供更多功能,使得從 BASH 遷移到 ZSH 更加容易和無縫。

  4. 智能的歷史記錄管理:ZSH 的歷史記錄管理更為智能,能幫助用戶快速查找和重複使用之前的命令。

  5. 強大的正則表達式支持:ZSH 對正則表達式的支持更為強大和靈活,讓用戶能夠更輕鬆地進行複雜的文本處理。

總結​

ZSH 相比 BASH 擁有更強大的自動完成、擴展功能、兼容性、歷史記錄管理和正則表達式支持等優勢,這使得 ZSH 成為更為強大且靈活的 shell 選擇。對於追求高效和定制化的 shell 體驗的用戶,ZSH 是值得推薦的替代方案。

ZSH 安裝與配置​

安裝 ZSH 和設置預設 shell​

安裝 ZSH 非常簡單,只需使用 sudo apt install zsh。ZSH 提供了更靈活的命令處理,如不區分大小寫、可複製貼上命令而不立即執行等。安裝完成後,使用 chsh 命令將 ZSH 設為預設 shell,這樣每次打開終端時將自動使用 ZSH。

安裝 Oh My Zsh 和 Powerlevel10k 主題​

為了進一步提升 ZSH 的功能和外觀,可以安裝 Oh My Zsh 管理框架。該框架不僅提供多種插件和主題,還使管理和定制 ZSH 更加方便。其中,Powerlevel10k 是一款強大的主題,可以顯示豐富的終端資訊,如分支名稱、工作目錄狀態、命令執行時間等。

自訂 Powerlevel10k 主題​

安裝完成後,可以根據個人喜好自訂 Powerlevel10k 主題,例如保留彩虹色、使用 Unicode 圖示、顯示分支資訊等。此過程需要配置字型,如 MesloLGS Nerd Font,確保所有圖示正常顯示。

使用自訂提示符號​

自訂提示符號能提供更豐富的即時資訊,如顯示當前分支名稱、工作目錄狀態及命令執行時間等,這樣可以在操作過程中更直觀地掌握系統狀態。

引用​

if [ -f ~/.zshrc_aliases ]; then
. ~/.zshrc_aliases
fi

if [ -f ~/.zshrc_functions ]; then
. ~/.zshrc_functions
fi

.zshrc_aliases

alias vi="nvim"
alias iforgot="cat /home/jasonwu513/iforgot"
alias bj4="cd /var/log"
alias pj="cd /Users/wuyishen/projects"

# No more cd ../../../..
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

.zshrc_functions

function mov2gif() {
ffmpeg -i $1 \
-vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
-loop 0 $1.gif
}

遇到中文顯示問題​

picture 0

vim ~/.zshrc

設定成 UTF-8 編碼

# 在 ~/.zshrc 中加入以下內容
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
source ~/.zshrc

picture 1

參考資料​

  1. 為什麼選擇 ZSH 而非 BASH?

  2. 將 Ubuntu 終端機轉換為具有豐富資訊的提示符號

  3. zsh 終端出現中文亂碼