Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Bash 實用技巧大全:快捷鍵、變量、歷史展開與目錄導航

編輯:系統常見問題解答

核心符號與運算

符號功能
&後台執行
()子 Shell 執行,如 (cd ../../lib; make)
$()命令替換(等同反引號)
<()進程替換,輸出導向臨時檔案
<<EOFHereDoc 多行輸入
$(( ))整數運算,如 $((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。

Copyright © Windows教程網 All Rights Reserved