Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux history 指令進階技巧:歷史搜尋、快速替換、參數複用與環境變數控制

編輯:Linux 教學

善用 history 內建功能,能大幅減少重複輸入、避免拼字錯誤、實現命令列「複製貼上」級效率。

基本操作

history              # 顯示編號列表
!510                 # 執行第 510 條指令
!-3                  # 執行倒數第 3 條指令
!!                   # 執行上一條指令 (等同 !-1)

參數複用:!$、!^、!*

符號含義範例
!$上一條指令的最後一個參數cp file.txt /tmp/ → cd !$ 進入 /tmp
!^上一條指令的第一個參數cp file.txt /tmp/ → vim !^ 編輯 file.txt
!*上一條指令的所有參數ls -l /etc → cp !* /backup 複製所有參數指定檔
!:2第 2 個參數 (0 為指令本身)
!:2-4第 2~4 個參數

經典場景:忘記 sudo

apt update
# 權限不足
sudo !!   # 自動補上 sudo 執行上一條指令

互動式搜尋:Ctrl+R

  1. 按住 Ctrl + R
  2. 輸入關鍵字,即時顯示匹配歷史
  3. 再按 Ctrl+R 向上翻更早紀錄
  4. Enter 執行,Esc 編輯後執行,Ctrl+G 取消

關鍵字直接執行:!關鍵字

!ssh     # 執行最近一條含 ssh 的指令
!git     # 執行最近一條 git 指令

歷史環境變數控制

變數預設作用
HISTSIZE1000記憶體中保留條數
HISTFILESIZE2000檔案 (~/.bash_history) 保留條數
HISTCONTROLignorebothignorespace 忽略空白開頭、ignoredups 忽略重複、ignoreboth 兩者皆啟用
HISTIGNORE—忽略特定指令模式,如 "ls*:cd*:pwd"
HISTTIMEFORMAT—顯示時間戳,如 "%F %T "

實用配置 (~/.bashrc)

export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoreboth
export HISTIGNORE="ls:ll:cd:cd -:pwd:exit:clear:history"
export HISTTIMEFORMAT="%F %T "
# 即時同步歷史 (多終端共享)
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

清空與停用歷史

history -c           # 清空當前 shell 記憶體歷史
history -w           # 寫入檔案
HISTSIZE=0           # 停用記錄 (設 0)
unset HISTSIZE       # 恢復預設

進階技巧:歷史擴充修飾符

!!:s/old/new/        # 替換上一條指令首個 old 為 new
!!:gs/old/new/       # 全域替換 (g)
!$:h                 # 取路徑目錄部分
!$:t                 # 取檔名部分
!$:r                 # 移除副檔名

掌握上述技巧,命令列操作將如同擁有「無限撤銷/重做」與「智能預測」的現代編輯器體驗。

Copyright © Windows教程網 All Rights Reserved