一、命令概述shell
history命令用於顯示用戶之前執行過的歷史命令,讀取歷史命令文件中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令文件。
該命令單獨使用時,僅顯示歷史命令,在命令行中,能夠使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。
歷史命令是被保存在內存中的,當退出或者登陸shell時,會自動保存或讀取。在內存中,歷史命令僅可以存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制。vim
二、命令語法緩存
history【選項】 bash
三、命令選項spa
-a:將當前shell會話的歷史命令追加到命令歷史文件中,命令歷史文件是保存歷史命令的配置文件
-c:清空當前歷史命令列表
-d:刪除歷史命令列表中指定序號的命令
-n:從命令歷史文件中讀取本次Shell會話開始時沒有讀取的歷史命令
-r:讀取命令歷史文件到當前的Shell歷史命令內存緩衝區
-s:將指定的命令做爲單獨的條目加入命令歷史內存緩衝區。在執行添加以前先刪除命令歷史內存緩衝區中最後一條命令
-w:把當前的shell歷史命令內存緩衝區的內容寫入命令歷史文件命令行
!num:調用第num行的命令
!!:調用上一條命令
!cmd:調用離當前最近以改cmd開頭的命令
!$或按住ESC鍵,而後鬆開按.:調用上條命令後面的參數code
四、命令示例blog
4.1 顯示歷史命令執行時間:內存
1 [root@lzg ~]# export HISTTIMEFORMAT='%F %T ' #設置顯示歷史命令執行時間 2 或者 3 [root@lzg ~]# export HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S ' 4 [root@lzg ~]# history 2 #顯示最近執行的2條命令 5 21 2019-11-05 16:32:17 history 6 22 2019-11-05 16:33:16 history 2
以上這種方法只是臨時生效,若是永久生效須要修改配置文件:
[root@lzg ~]# vim /root/.bash_history
添加:export HISTTIMEFORMAT='%F %T '
[root@lzg ~]# source /root/.bash_history #命令生效
4.2 顯示最後num條執行的命令:cmd
1 [root@lzg ~]# history 3 2 5 2019-11-05 16:46:11 touch a.txt 3 6 2019-11-05 16:46:15 vi a.txt 4 7 2019-11-05 16:46:27 history 3
4.3 清除某一條的命令:
1 [root@lzg ~]# history -d 5 #清除第5條命令
4.4 查看history緩存存儲數量:
1 [root@lzg ~]# echo $HISTSIZE 2 1000 #1000默認存儲數量 3 [root@lzg ~]# cat /etc/profile | grep HISTSIZE #配置文件 4 HISTSIZE=1000 5 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
若是不想存儲不少的歷史命令,能夠修改此配置文件,若是HISTSIZE=0,不存儲歷史記錄
source /etc/porfile 使配置生效
4.5 使用最近一次使用的命令:
1 [root@lzg ~]# !!
4.6 調用第num條命令:
1 [root@lzg ~]# !12