跳至主要内容

從零開始玩 Oh My Zsh —— 讓終端機效率大爆發!

本篇文章將會涵蓋以下重點:

  • Oh My Zsh 是什麼?為什麼大家都在用?
  • 如何安裝與基本設定?
  • Git、Docker 指令縮寫表,讓你操作快到飛起來!
  • 常見問題與進階參考

什麼是 Oh My Zsh?為什麼要用?

在講解安裝之前,我們先來聊聊 Oh My Zsh 到底有多強。

簡單的說法就是:

  • Zsh 是一個比 Bash 更強大的終端機殼層
  • Oh My Zsh 則是 Zsh 的「超強外掛包裝器」

換句話說,Oh My Zsh 幫你把終端機變成超級英雄,auto complete、主題美化、指令縮寫、外掛支援通通一把抓!

值得一提的是,Oh My Zsh 有超過 200+ 外掛、140+ 主題,社群超活躍,遇到問題一查就有解。


如何安裝 Oh My Zsh?

安裝超簡單,只要一行指令!
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • 執行完畢後,Zsh 會自動成為預設殼層,並產生 ~/.zshrc 設定檔。
  • 你可以在 ~/.zshrc 裡調整主題、外掛等設定。

安裝後必做的三件事

  1. 選主題
    • 編輯 ~/.zshrc,找到 ZSH_THEME,改成你喜歡的主題(例如 agnoster)。
  2. 加外掛
    • 找到 plugins=(git),可以加上 dockerzsh-autosuggestions 等。
  3. 套用設定
    • 執行 source ~/.zshrc 讓設定立即生效。

Oh My Zsh 指令縮寫大全

這邊整理了最常用的 Git 與 Docker 指令縮寫,分類清楚,查找超方便!

Docker 相關指令縮寫

🛠️ 建構與映像檔相關

別名指令說明
dbldocker build建構 Docker 映像檔
dibdocker image build同上,使用 image 子命令
diidocker image inspect查看映像檔詳細資訊
dilsdocker image ls列出所有映像檔
dirmdocker image rm移除映像檔
ditdocker image tag標記映像檔
dipudocker image push推送映像檔到 registry
diprudocker image prune -a清除未使用的所有映像檔

📦 容器操作相關

別名指令說明
drdocker container run執行容器
dritdocker container run -it互動模式執行容器
dstdocker container start啟動容器
drsdocker container restart重新啟動容器
dstpdocker container stop停止容器
dstadocker stop $(docker ps -q)停止所有執行中的容器
drmdocker container rm移除容器
drm!docker container rm -f強制移除容器
dclsdocker container ls列出執行中的容器
dclsadocker container ls -a列出所有容器(含已停止)
dcindocker container inspect查看容器詳細資訊
dlodocker container logs查看容器日誌
dpodocker container port查看容器 port 對應關係
dtopdocker top查看容器內的執行程序
dstsdocker stats即時顯示資源使用狀況
dpsdocker ps顯示執行中的容器
dpsadocker ps -a顯示所有容器

🧩 Volume 操作

別名指令說明
dvlsdocker volume ls列出所有 volume
dvidocker volume inspect查看 volume 資訊
dvprunedocker volume prune清除未使用的 volume

🌐 網路操作

別名指令說明
dnlsdocker network ls列出網路
dnidocker network inspect查看網路資訊
dncdocker network create建立新的網路
dnrmdocker network rm刪除網路
dncndocker network connect將容器加入網路
dndcndocker network disconnect將容器從網路移除

🔧 其他常用指令

別名指令說明
dpudocker pull從 registry 拉映像檔
dxcdocker container exec在容器中執行指令
dxcitdocker container exec -it互動模式執行容器指令

Git 相關指令縮寫

🔍 狀態與日誌相關

別名指令說明
gstgit status查看目前 Git 狀態
gssgit status --short精簡版狀態顯示
gsbgit status --short --branch顯示簡潔的分支狀態
gshgit show顯示提交的詳細變更
glggit log --stat顯示提交記錄及修改統計
glgpgit log --stat --patch顯示提交記錄與實際程式碼變更
gloggit log --oneline --decorate --graph圖形化簡短提交歷史
glolgit log --graph --pretty="..."圖形化並美化的 log 輸出
glgggit log --graph圖形化 log

🧩 加入變更與提交

別名指令說明
gagit add加入變更檔案至暫存區
gaagit add --all加入所有變更
gcamgit commit --all --message一次加入變更並提交
gcgit commit --verbose進行詳細提交
gcagit commit --verbose --all加入所有變更並進行詳細提交
gcmsggit commit --message使用訊息提交
gcn!git commit --verbose --no-edit --amend不改訊息並修改上次提交

🔁 分支操作

別名指令說明
gbgit branch查看本地分支
gbagit branch --all查看所有分支
gbrgit branch --remote查看遠端分支
gcbgit checkout -b建立並切換新分支
gcogit checkout切換分支或檔案
gcmgit checkout $(git_main_branch)切換到主要分支
gcdgit checkout $(git_develop_branch)切換到開發分支
gbdafunction,自動刪除已合併分支清理本地已合併分支
gbdgit branch --delete刪除本地分支
gbDgit branch --delete --force強制刪除本地分支

📥 抓取與拉取

別名指令說明
gfgit fetch從遠端抓取更新
gfagit fetch --all --tags --prune抓取所有遠端更新並清理已刪除分支
glgit pull從遠端拉取更新
ggpullgit pull origin $(git_current_branch)拉取當前分支遠端更新
gpromgit pull --rebase origin main拉 main 分支並使用 rebase
gprgit pull --rebase使用 rebase 的方式拉取更新

📤 推送與上傳

別名指令說明
gpgit push推送變更至遠端
ggpushgit push origin $(git_current_branch)推送目前分支
gpfgit push --force-with-lease安全強制推送
gpsupgit push --set-upstream origin ...設定上游分支

📌 標籤(Tag)與版本

別名指令說明
gtagit tag --annotate建立註解標籤
gtsgit tag --sign建立簽章標籤
gtvgit tag sort -V顯示排序過的版本標籤

💾 暫存(stash)

別名指令說明
gstagit stash push將變更暫存
gstpgit stash pop還原最新暫存
gstlgit stash list顯示暫存清單
gstsgit stash show --patch顯示暫存內容

🔧 其他實用指令

別名指令說明
gclgit clone --recurse-submodulesClone 並包含子模組
gcleangit clean --interactive -d互動清理未追蹤檔案
gignoredgit ls-files -v | grep "^[[:lower:]]"列出被 Git 忽略的檔案
gcountgit shortlog --summary --numbered計算作者貢獻統計
gwipgit add -A && ... --message "--wip--"快速建立 WIP commit
gunwipgit reset HEAD~1(如有 WIP commit)撤銷最後一次 WIP
ggsupgit branch --set-upstream-to=origin/$(git_current_branch)設定上游分支

常見問題與進階參考

遇到設定問題、想找更多主題或外掛?

參考資料: