環境對除錯效率的影響#

除錯是高度要求專注的活動。如果開發環境不符合需求,累積的小摩擦會嚴重拖慢效率。本節涵蓋硬體、軟體、shell 設定與遠端工作等面向的優化建議。

硬體與軟體資源#

  • 確保有足夠的 CPU、記憶體、儲存空間(本地或雲端)
  • 某些靜態分析工具需要大量 CPU 和記憶體;某些任務需要儲存大量 log 或 telemetry 資料
  • 不要省軟體的錢:你的時間遠比工具成本更有價值。如果某個軟體能幫助除錯,就該使用它

Shell 設定優化#

PATH 與自動補全#

# 確保 PATH 包含系統管理工具目錄
export PATH="/sbin:/usr/sbin:$PATH"

# 設定 Git 自動補全
source ~/.bash_completion.d/git-completion.bash

提示字元與終端機標題列#

除錯時經常切換不同主機和身份,清楚的提示字元能幫助你保持理智:

# 顯示 user@host 和目前目錄
PS1="[\u@\h \W]\\$ "

命令列編輯模式#

將命令列編輯鍵綁定設為你慣用的編輯器模式:

set -o emacs
# 或
set -o vi

常用 Alias#

alias h='history 15'
alias j=jobs
alias mroe=more    # 修正常見 typo

環境變數#

export PAGER=less
export VISUAL=vim
export EDITOR=ex

歷史記錄#

將命令歷史記錄擴大並加上時間戳記,方便日後搜尋有價值的除錯指令:

export HISTFILESIZE=1000000000
export HISTSIZE=1000000
export HISTTIMEFORMAT="%F %T "
export HISTCONTROL=ignoreboth
shopt -s cmdhist
shopt -s histappend

Globstar#

# 允許 ** 遞迴匹配子目錄
shopt -s globstar

# 計算所有 Java 檔案中作者為 James Gosling 的數量
grep '@author.*James Gosling' **/*.java | wc -l

程式與工具設定#

  • 花時間學習並設定 debugger、編輯器、IDE、版本控制系統和 pager
  • IDE 和進階編輯器支援許多有用的 plugin,選擇適合的並安裝
  • 設定一個簡單的方式在每台新主機上安裝你的配置

遠端工作效率#

  1. SSH 免密碼登入:用 ssh-keygen 產生金鑰對,將公鑰放到遠端的 .ssh/authorized_keys
  2. Host Alias:在 .ssh/config 中設定簡短名稱
Host garfield
  HostName garfield.dev.asia.example.com
  User testuser
  1. 遠端 GUI:學會如何在遠端主機上執行 GUI 應用程式並在本地顯示

命令列與 GUI 的銜接#

  • 從命令列啟動 GUI 程式:start (Windows)、open (macOS)、gnome-open (Gnome)
  • 命令列與剪貼簿互通:xsel (Linux)、winclip (Windows)、/dev/clipboard (Cygwin)
  • 從 GUI 檔案管理器拖放檔案到 shell 視窗

用版本控制管理設定檔#

將所有設定檔放入版本控制,確保跨主機一致:

# .gitignore — 忽略全部,只追蹤指定檔案
*
# 但不忽略這些...
!.bashrc
!.editrc
!.gdbinit
!.gitconfig
!.gitignore
!.inputrc

定期檢視你的開發環境,找出摩擦點。如果你發現自己重複輸入冗長的命令或執行大量滑鼠操作,就該把它封裝成腳本或 alias。

重點回顧#

  • 透過適當的工具配置提升除錯生產力
  • 用版本控制系統在多台主機間共享環境設定
  • 善用 SSH 設定、alias、歷史記錄等功能減少重複操作