環境對除錯效率的影響#
除錯是高度要求專注的活動。如果開發環境不符合需求,累積的小摩擦會嚴重拖慢效率。本節涵蓋硬體、軟體、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 histappendGlobstar#
# 允許 ** 遞迴匹配子目錄
shopt -s globstar
# 計算所有 Java 檔案中作者為 James Gosling 的數量
grep '@author.*James Gosling' **/*.java | wc -l程式與工具設定#
- 花時間學習並設定 debugger、編輯器、IDE、版本控制系統和 pager
- IDE 和進階編輯器支援許多有用的 plugin,選擇適合的並安裝
- 設定一個簡單的方式在每台新主機上安裝你的配置
遠端工作效率#
- SSH 免密碼登入:用
ssh-keygen產生金鑰對,將公鑰放到遠端的.ssh/authorized_keys - Host Alias:在
.ssh/config中設定簡短名稱
Host garfield
HostName garfield.dev.asia.example.com
User testuser- 遠端 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、歷史記錄等功能減少重複操作