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