一、什麼是history
在bash功能中,它能記憶使用過的命令,這個功能最大的好處就是可以查詢曾經做過的舉動!
從而可以知道你的運行步驟,那麼就可以追蹤你曾下達過的命令,以作為除錯的工具!
二、History的保存
那麼命令記錄在哪裡呢?在家目錄內的 .bash_history 裡! 不過,需要留意的是,~/.bash_history 記錄的是前一次登陸以前所運行過的命令,而至於這一次登陸所運行的命令都被緩存在內存中,當你成功的注銷系統後,該命令記憶才會記錄到 .bash_history 當中!
三、調用歷史命令
接下來學習history歷史命令的用法。
復制代碼代碼如下:
history [n]
[root@jb51 Desktop]#history [-c]
[root@jb51 Desktop]#history [-raw] histfiles
選項與參數:
n :數字,意思是要列出最近的 n 條命令行表的意思!
-c :將目前的 shell 中的所有 history 內容全部消除
-a :將目前新增的 history 命令新增入 histfiles 中,若沒有加 histfiles ,
則默認寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;
-w :將目前的 history 記憶內容寫入 histfiles 中!
例1,列出目前內存內的所有 history 歷史記錄
復制代碼代碼如下:
[root@jb51 Desktop]#history
# 前面省略
1017 man bash
1018 ll
1019 history
1020 history
列出的信息當中,共分兩欄,第一欄為該命令在這個 shell 當中的代碼, 另一個則是命令本身的內容!至於會顯示多少條命令記錄,則與 HISTSIZE 有關!
例2,列出目前最近的 3 條數據
復制代碼代碼如下:
[root@jb51 Desktop]#history 3
1019 history
1020 history
1021 history 3
例3,立刻將目前的數據寫入 histfile 當中
復制代碼代碼如下:
[root@jb51 Desktop]#history -w
# 在默認的情況下,會將歷史紀錄寫入 ~/.bash_history 當中!
[root@jb51 Desktop]#echo $HISTSIZE
1000
四、歷史使用的竅門
1、!的使用
⑴!!重復前一個命令
⑵!字符 重復前一個以“字符”開頭的命令
⑶!num 按照history命令輸出中的序號來重復對應命令
⑷!?abc 重復前一個包含abc的命令
⑸!-n 重復n個命令之前的那個命令
2、按鍵組合
⑴使用up和down鍵來上下浏覽之前執行的命令
⑵鍵入ctr+r來在命令歷史中搜索命令
復制代碼代碼如下:
[root@jb51 Desktop]#
(reverse-i-search)`':
(reverse-i-search)`h': cat /etc/shadow
按回車鍵執行該命令
⑶要重新調用前一個命令中的參數
Esc + .(點擊Esc鍵,然後點擊.鍵)
注意:
History保存在每個用戶自己的歷史記錄中,位於用戶的家目錄中。
用戶登錄後,執行命令存放在內存中,只有登錄後才能看到。
五、如何保證每次推出登錄時情況history
在需要的用戶主目錄下,編輯~/.bash.logout添加一句history -c保存退出就可以了。