簡介
history
命令顯示當前 shell
會話中以前執行過的命令列表。這對於無需重新輸入命令即可重新呼叫或重新執行命令特別有用。
示例用法
顯示命令歷史列表
history
# 示例輸出如下:
1 ls -l
2 cd /var/log
3 cat syslog
執行歷史記錄中的命令
!<number>
!2
# number 表示執行第幾條命令
限制命令歷史顯示的條數
history <number> history 10
清空當前 shell
會話的歷史命令
history -c
把命令歷史寫入 ~/.bash_history
檔案中
history -w
從 ~/.bash_history
檔案中讀取命令
history -r
刪除命令歷史中的指定命令
history -d <number> history -d 5
Ctrl + r
搜尋歷史命令
(reverse-i-search)`cat': cat syslog
重新執行上一條命令
!!
重新執行以指定字串開頭的最新歷史命令
!<string> !cat
結合 grep
使用
history | grep "ls"
搜尋不以指定字串開頭的命令
!?ls
使用負數執行倒數最新的命令
!-2
追加命令歷史到 ~/.bashrc_history
檔案
history -a
設定多個 shell
會話的命令都追加寫入到 ~/.bash_history
檔案
# 修改 ~/.bashrc 檔案,新增以下行
shopt -s histappend
環境變數設定
設定會話期間儲存在記憶體中的命令數
export HISTSIZE=1000
設定儲存在 ~/.bash_history
檔案中的最大命令列數
export HISTFILESIZE=2000
定義重複或某些命令如何儲存在歷史記錄中
ignoredups
:忽略重複的命令ignorespace
:忽略以空格開頭的命令ignoreboth
:合併以上兩者
export HISTCONTROL=ignoreboth
從歷史記錄中排除指定的命令
export HISTIGNORE="ls:pwd:exit"
啟用命令歷史中的時間戳
export HISTTIMEFORMAT="%F %T "
# 示例輸出如下:
1 2024-11-29 15:30:01 ls -l
2 2024-11-29 15:32:15 cd /var/log