核心符號與運算
| 符號 | 功能 |
| & | 後台執行 |
| () | 子 Shell 執行,如 (cd ../../lib; make) |
| $() | 命令替換(等同反引號) |
| <() | 進程替換,輸出導向臨時檔案 |
| <<EOF | HereDoc 多行輸入 |
| $(( )) | 整數運算,如 $((66/2)) |
| (( )) | 算術條件判斷 |
| [[ ]] | 字串/檔案條件判斷 |
實用範例:在腳本中嵌入 awk
awk -f <(cat <<EOF
/abc/ {
print $0;
}
EOF
)
環境與進程控制
alias 定義別名
source / . 當前 Shell 執行腳本
exec 重定向檔案描述符或替換進程
trap 捕獲信號
nohup / screen 免受 SSH 斷開影響
export 導出變量給子 Shell
tee 輸出分流
ENV_VAR=VALUE cmd 單次修改環境變量
tac 反向輸出檔案
目錄跳轉神技
cd - # 返回上一目錄
cd # 回 Home
pushd/popd/dirs # 目錄堆疊導航
pushd +n / popd +n # 操作堆疊第 n 項
CDPATH:跨目錄快速 cd
export CDPATH='.:~:/usr/local/apache/htdocs:/disk1/backups'
# 之後 cd 任意子目錄名即可直接跳轉
特殊參數速查
| 參數 | 含義 |
| $* | 所有參數(IFS 分隔) |
| $@ | 所有參數(保持原樣) |
| $# | 參數個數 |
| $? | 上一命令返回碼 |
| $$ | 當前 Shell PID |
| $! | 最後後台進程 PID |
| $_ | 最後一個命令的最後參數 |
Emacs 風格快捷鍵(Bash 預設)
| 按鍵 | 功能 |
| Ctrl+p / Ctrl+n | 上/下歷史 |
| Ctrl+b / Ctrl+f | 左/右移字元 |
| Alt+b / Alt+f | 左/右移單詞 |
| Ctrl+a / Ctrl+e | 行首/行尾 |
| Ctrl+k | 刪除至行尾 |
| Ctrl+u | 刪除至行首 |
| Ctrl+w | 刪除前一單詞 |
| Ctrl+y | 粘貼最後刪除內容 |
| Ctrl+r | 反向搜尋歷史 |
| Ctrl+l | 清屏 |
| Ctrl+z | 暫停至後台 |
| Ctrl+c | 終止當前命令 |
| Ctrl+d | 退出 Shell |
歷史展開(Bang 命令)
!! # 重執行上一條
!n # 重執行第 n 條
!-n # 重執行倒數第 n 條
!string # 最近以 string 開頭的命令
!?string? # 最近包含 string 的命令
!$ # 上一條命令的最後一個參數
^old^new^ # 替換上一條命令中的 old 為 new
修飾符
:s/old/new/ # 第一次替換
:gs/old/new/ # 全域替換
:p # 僅列印不執行(驗證用)
:w # 取第 w 個參數
Bash 設定檔載入順序
/etc/profile # 全域環境變量
~/.bash_profile # 登入 Shell 載入
~/.bashrc # 互動式非登入 Shell
~/.bash_history # 歷史記錄
~/.bash_logout # 登出執行
熟練這些技巧能讓終端機操作效率成倍提升,建議配合 bind -P 查看完整綁定,並根據習慣調整 ~/.inputrc。