~/.bashrc 是 Bash 互動式 Shell 的核心設定檔,掌握它能讓你的命令列操作更得心應手。本文整理自 Emmanuel Rouat 釋出、註解詳盡的範例檔案(基於 Linux 系統),涵蓋環境變數、別名、函數、提示符客製化、可程式化補全等進階技巧。建議逐段研讀,並將實用片段移植到自己的 .bashrc 或腳本中。
檔案開頭載入系統級設定 /etc/bashrc,接著自動偵測 $DISPLAY 變數以支援遠端 X11 轉發。核心 Shell 選項啟用 cdspell(目錄拼寫修正)、histappend(歷史紀錄追加)、extglob(擴展通配符)等,並關閉 MAILCHECK 避免郵件提示干擾。
定義 ANSI 色碼變數(red、cyan 等),登入時顯示 Bash 版本、$DISPLAY、日期與 fortune 小語錄。提供兩種提示符模式:
根據 $DISPLAY 判斷本地/遠端,自動切換提示符顏色(本地青色、遠端紅色)。
alias rm='rm -i' # 刪除前確認
alias cp='cp -i' # 複製前確認
alias mv='mv -i' # 移動前確認
alias mkdir='mkdir -p'# 遞迴建立目錄
alias ..='cd ..'
alias path='echo -e ${PATH//:/\\n}' # 以換行顯示 PATH
alias ls='ls -hF --color' # 人類可讀、類型標記、著色
alias la='ls -Al' # 顯示隱藏檔
alias lx='ls -lXB' # 依副檔名排序
alias lk='ls -lSr' # 依大小排序
alias lt='ls -ltr' # 依時間排序
alias lr='ls -lR' # 遞迴列出
alias tree='tree -Csu' # 樹狀結構
alias h='history'
alias j='jobs -l'
alias du='du -kh'
alias df='df -kTh'
alias more='less'
alias grep='grep --color=auto'
ff <pattern>:依名稱模糊搜尋檔案fe <pattern> [cmd]:搜尋並對結果執行命令(預設 file)fstr [-i] <pattern> [<filename pattern>]:在檔案中搜尋字串並高亮顯示lowercase:批次將檔名轉小寫swap file1 file2:交換兩個檔名my_ps [ps args]:列出當前使用者程序(PID、CPU%、記憶體%、時間、指令)pp <pattern>:依關鍵字過濾程序killps [-SIGNAL] <pattern>:互動式依名稱殺掉程序ii:顯示主機資訊(登入用戶、日期、uptime、記憶體、IP、ISP)repeat <n> <command>:重複執行命令 n 次xtitle <string>:設定終端機標題列(支援 xterm/rxvt)man 包裝函數:自動設定標題列為手冊頁名稱te:xemacs/gnuserv 啟動器需 Bash ≥ 2.05 並啟用 shopt -s extglob。內建大量 complete 規則:
ssh、ping、ftp 等cd、mkdir、rmdir.zip→unzip、.gz→gunzip、.pdf→acroread、.jpg→xv 等make 目標補全(掃描 Makefile)cvs、killall、sudo 等進階補全函數並提供通用的 _longopts_func 自動解析 --help 產生長選項補全,適用於 wget、ls、configure 等指令。
~/.bashrc 後,執行 source ~/.bashrc 立即生效。~/bin。~/.bash_profile 確保登入 Shell 也能載入(通常在 .bash_profile 中 source ~/.bashrc)。提示:本範例源自 Advanced Bash-Scripting Guide 附錄 K,原作者 Emmanuel Rouat 歡迎回饋。深入理解每一段落,能讓你從「會用 Bash」進化為「駕馭 Bash」。