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 幫你:
- 建立一個專案初始化腳本(自動建立目錄結構、初始化 git、安裝依賴)
- 建立一個一鍵部署腳本(測試、建置、上傳)
- 設定 Terminal 美化(powerlevel10k + 字型)
- 建立 20 個以上常用的別名
- 建立批次處理腳本(批次重新命名、格式轉換、檔案清理)