Terminal 指令與效率技巧

對開發者來說,Terminal(終端機)是僅次於編輯器最重要的工具。熟練使用 Terminal 可以讓你的開發效率提升 5 倍以上。

🔥 Vibe Prompt

「幫我建立一份 Terminal 效率提升指南:包含 zsh 設定(oh-my-zsh 主題與外掛)、常用管線指令組合、批次檔案處理、以及與 VSCode 的整合技巧。」

為什麼 Terminal 這麼重要?

GUI 工具雖然直覺,但有以下限制:

  • 無法自動化:同樣的操作 100 次就要手動做 100 次
  • 無法組合:不同工具的 GUI 無法串聯
  • 速度慢:滑鼠操作遠慢於鍵盤指令

Terminal 則完全不同:

  • ✅ 可撰寫腳本自動化重複操作
  • ✅ 可用管線 (|) 將多個工具組合
  • ✅ 遠比 GUI 快速

基礎必備指令

| 指令 | 用途 | 範例 | |------|------|------| | ls | 列出檔案 | ls -la 顯示詳細資訊 | | cd | 切換目錄 | cd ~/projects | | pwd | 顯示當前路徑 | pwd | | cp | 複製 | cp -r src/ dest/ | | mv | 移動/重新命名 | mv old.txt new.txt | | rm | 刪除 | rm -rf temp/ | | cat | 檢視檔案 | cat file.txt | | less | 分頁檢視 | less large.log | | head / tail | 頭/尾幾行 | tail -f app.log | | grep | 搜尋文字 | grep -r "TODO" src/ | | find | 搜尋檔案 | find . -name "*.py" | | wc | 計算行數 | wc -l file.txt |

# 實用組合範例

# 搜尋所有 Python 檔案中的 TODO
find . -name "*.py" | xargs grep "TODO"

# 即時監控日誌(tail -f)
tail -f logs/app.log | grep "ERROR"

# 計算程式碼行數
find . -name "*.ts" -o -name "*.tsx" | xargs wc -l | tail -1

# 找出最大的 5 個檔案
du -sh * | sort -rh | head -5

管線與重導向

# 管線 (|):將前一個指令的輸出作為下一個的輸入
cat access.log | grep "404" | wc -l
# 回傳:404 錯誤的次數

# 輸出重導向 (> / >>)
echo "Hello" > file.txt     # 寫入(覆蓋)
echo "World" >> file.txt    # 追加

# 輸入重導向 (<)
sort < unsorted.txt > sorted.txt

# 錯誤重導向 (2>)
command_that_fails 2> error.log

# 同時處理 stdout 和 stderr
command > output.log 2>&1

zsh 設定與 oh-my-zsh

# 安裝 oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 推薦主題
ZSH_THEME="powerlevel10k/powerlevel10k"  # 最美主題
# ZSH_THEME="agnoster"                     # 經典主題
# ZSH_THEME="robbyrussell"                 # 預設主題

# 推薦外掛
plugins=(
  git
  docker
  docker-compose
  node
  npm
  python
  pip
  vscode
  history
  colored-man-pages
  zsh-autosuggestions    # 自動建議
  zsh-syntax-highlighting # 語法高亮
  web-search             # 直接從 terminal 搜尋
  copyfile               # 複製檔案內容到剪貼簿
  copypath               # 複製路徑到剪貼簿
)

進階技巧

别名 (Aliases)

~/.zshrc 中加入常用別名:

# 編輯器
alias code='code-insiders'

# Git
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph'

# Docker
alias d='docker'
alias dc='docker-compose'

# 目錄導航
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# 安全性刪除
alias rm='rm -i'

# 快捷開啟
alias zshrc='code ~/.zshrc'
alias reload='source ~/.zshrc'

一鍵指令組合

# 更新所有 git repo
for dir in ~/projects/*/; do
  echo "📂 Updating $dir"
  cd "$dir" && git pull
  echo ""
done

# 批次重新命名檔案
for f in *.JPG; do
  mv "$f" "${f%.JPG}.jpg"
done

# 在目錄中搜尋並取代文字
sed -i '' 's/old_text/new_text/g' src/**/*.ts

fzf — 模糊搜尋神器

# 安裝 fzf
brew install fzf

# 搜尋檔案並用 VSCode 開啟
vim $(fzf)

# 搜尋指令歷史
history | fzf

# 搜尋並切換目錄
cd $(find . -type d | fzf)

實戰練習

💡 Vibe Coding 練習:請 AI 幫你:

  1. 建立一個專案初始化腳本(自動建立目錄結構、初始化 git、安裝依賴)
  2. 建立一個一鍵部署腳本(測試、建置、上傳)
  3. 設定 Terminal 美化(powerlevel10k + 字型)
  4. 建立 20 個以上常用的別名
  5. 建立批次處理腳本(批次重新命名、格式轉換、檔案清理)

會員專屬免費教學

本章節為註冊會員專屬的免費開放內容!請先登入或註冊會員,即可立即解鎖閱讀。

立即登入 / 註冊