首頁 > 軟體

Linux 的 history 命令使用詳解

2020-06-16 16:50:12

history命令

history命令:用於顯示歷史記錄和執行過的指令命令。history命令讀取歷史命令檔案中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令檔案。該命令單獨使用時,僅顯示歷史命令,在命令列中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。

history命令:是被儲存在記憶體中的,當退出或者登入shell時,會自動儲存或讀取。在記憶體中,歷史命令僅能夠儲存1000條歷史命令,該數量是由環境變數 HISTSIZE進行控制。預設是不顯示命令的執行時間,命令的執行時間,history 已經記錄,只是沒有顯示。

註:如想查詢某個使用者在系統上執行了什麼命令,可以使用root使用者身份登入系統,檢查Home目錄下的使用者主目錄下的“.bash_history”檔案,該檔案記錄了使用者所使用的命令和歷史資訊。

語法:

history(選項)(引數)

選項:

-N: 顯示歷史記錄中最近的N個記錄;
-c:清空當前歷史命令;
-a:將歷史命令緩衝區中命令寫入歷史命令檔案中;
-r:將歷史命令檔案中的命令讀入當前歷史命令緩衝區;
-w:將當前歷史命令緩衝區命令寫入歷史命令檔案中;
-d<offset>:刪除歷史記錄中第offset個命令
-n<filename>:讀取指定檔案

引數:

n:列印最近的n條歷史命令。

範例:

#檢視歷史執行記錄
[linuxidc@linuxidc ~]$ history #檢視歷史執行記錄

#檢視歷史執行記錄後 5 條
[linuxidc@linuxidc ~]$ history 5  #檢視歷史執行記錄後 5 條

#  使用! 執行歷史命令。
#  ! number 執行第幾條命令
[linuxidc@linuxidc ~]$
[linuxidc@linuxidc ~]$ !10 #執行歷史記錄第 10 條命令
#  !! 執行上一條
[linuxidc@linuxidc ~]$
[linuxidc@linuxidc ~]$ !! #執行上一條命令

顯示執行歷史記錄時間:
1、預設情況下,history並不記錄命令的執行時間,分析起來很困難。我們可以使用HISTTIMEFORMAT在歷史中顯示TIMESTAMP。
2、把上面的 export HISTTIMEFORMAT="%F %T " 命令加入到~/.bashrc中即可在登入後自動開啟history時間戳了。新增完成後,執行source .bashrc 讓其生效。僅針對當前賬號有效。
3、其實HISTTIMEFORMAT的格式就是 strftime函數的格式,比如上面的"%F %T ",%F表示顯示出Y-M-D格式的日期,%T表示顯示出H-M-S這樣格式的時間。
4、用Ctrl+R搜尋歷史命令;當你執行了一串相當長的命令之後,你只要用關鍵字搜尋一下歷史命令然後重新執行這條命令而不需要將整條命令再輸一遍。方法是:按下Ctrl+R然後輸入關鍵字。如搜尋”date”,則顯示歷史的命令中含有”date”的命令 date "+今天是:%F,%A,時間是:%T.準備吃飯去"。按回車,就可以重新執行這條命令了,而按左箭頭鍵或右箭頭鍵則可以直接修改,改完之後按回車執行,非常方便!
【註:在命令列提示符下按下Ctrl+R,終端將顯示如下提示reverse-i-search】

#設定HISTTIMEFORMAT環境變數,給history記錄新增上時間戳
[linuxidc@linuxidc ~]$
[linuxidc@linuxidc ~]$ export HISTTIMEFORMAT="%F %T " #設定HISTTIMEFORMAT環境變數,給history記錄新增上時間戳

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-07/153123.htm


IT145.com E-mail:sddin#qq.com