history 命令用於顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令文件。
語法
history [options] [file]
options
-a:緩衝區追加寫入文件
-w:緩衝區覆蓋寫入文件
-r:讀取歷史文件到緩衝區
-c:清空緩衝區
n:打印最近n條歷史
執行歷史記錄中的命令
!n:執行第 n 條命令
!!:執行上一條命令
!-n:執行倒數第 n 條命令
!str:執行最後一個以 str 打頭的命令
上(Ctrl+P)下鍵:切換歷史命令
Ctrl + r:搜索
獲取歷史命令中參數(! 或 !! 打頭)
格式:
!
(^ $ * )
:
第m個參數
!
第n條命令
:
(^ $ * m)
用法:
!^ 第一個參數
!:m 第m個參數
!n:^ 第n條命令的第一個參數
!n:m 第n條命令的第m個參數
!string:^ 以 string 開頭的命令的第一個參數
!string:n 以 string 開頭的命令的第n個參數
實例:
ls /usr/local/etc
#如同執行 cd /usr/local/etc
cd !*
環境變量
HISTTIMEFORMAT="`hostname` %F %T " :配置格式化的時間 命令歷史前加入 主機名 、日期、時間等信息
HISTSIZE=500 :指定最大記錄條數
HISTIGNORE="ls:ll:pwd:history" :指定不記錄到歷史中的命令,不能帶參數
HISTFILE :指定存放的文件(~/.bash_history)
HISTCONTROL="ignoredups":控制記錄方式
ignoredups:不記錄連續重複的命令
ignorespace:不記錄空格開頭的命令
ignoreboth:不記錄連續重複和空格打頭的命令
erasedups:從新記錄並刪除以前徹底相同的命令
示例:
#選擇寫入 bashrc 是由於每當打開新的終端,修改自動生效
vim /etc/bashrc
#添加內容
alias add-path="vim /etc/bashrc"
alias clear-history="history -c && history -w"vim
export HISTSIZE=500; HISTTIMEFORMAT="%F "; HISTCONTROL="ignoredups"
export HISTIGNORE="ls:ll:pwd:history"