root@linux ~]# history [n]
[root@linux ~]# history [-c]
[root@linux ~]# history [-raw] histfileshtml
參數:
n :數字,意思是‘要列出最近的 n 筆命令列表’的意思!
-c :將目前的 shell 中的全部 history 內容所有消除
-a :將目前新增的 history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;
-w :將目前的 history 記憶內容寫入 histfiles 中!
範例:
範例一:列出目前記憶體內的全部 history 記憶
[root@linux ~]# history
# 前面省略
1017 man bash
1018 ll
1019 history
1020 history
# 列出的資訊當中,共分兩欄,第一欄爲該指令在這個 shell 當中的代碼,
# 另外一個則是指令自己的內容喔!至於會秀出幾筆指令記錄,則與 HISTSIZE 有關!
linux
範例二:列出目前最近的 3 筆資料
[root@linux ~]# history 3
1019 history
1020 history
1021 history 3
範例三:馬上將目前的資料寫入 histfile 當中
[root@linux ~]# history -w
# 在預設的狀況下,會將歷史紀錄寫入 ~/.bash_history 當中!
[root@linux ~]# echo $HISTSIZE
1000
在正常的狀況下,當咱們以 bash 登入 Linux 主機以後,系統會主動的由家目錄的 ~/.bash_history 讀取之前曾經下過的指令,那麼 ~/.bash_history 會記錄幾筆資料呢?這就與你 bash 的 HISTSIZE 這個變數設定值有關了!在預設的FC4 底下,是會記錄 1000 筆資料的! 那麼假設我此次登入主機後,共下達過 100 次指令,‘等我登出時, 系統就會將 101~1100 這總共 1000 筆歷史命令更新到 ~/.bash_history 當中。’ 也就是說,歷史命令在我登出時,會將最近的HISTSIZE 筆記錄到個人紀錄檔當中啦!固然,也能夠用 history -w 強制馬上寫入的!那爲什麼用‘更新’兩個字呢? 由於 ~/.bash_history 記錄的筆數永遠都是 HISTSIZE 那麼多,舊的訊息會被主動的拿掉!僅保留最新的!
那麼 history這個歷史命令只可讓我查詢命令而已嗎?呵呵!固然不止啊! 咱們能夠利用相關的功能來幫咱們執行命令呢!舉例來講囉:
[root@linux ~]# !number
[root@linux ~]# !command
[root@linux ~]# !!
參數:
number :執行第幾筆指令的意思;
command :由最近的指令向前搜尋‘指令串開頭爲 command’的那個指令,並執行;
!! :就是執行上一個指令(至關於按↑按鍵後,按 Enter)
範例:
[root@linux ~]# history
66 manrm
67 alias
68 manhistory
69 history
[root@linux ~]# !66 <==執行第66 筆指令
[root@linux ~]# !! <==執行上一個指令,本例中亦即 !66
[root@linux ~]# !al <==執行最近以 al 爲開頭的指令(上頭列出的第 67 個)
通過上面的介紹,瞭乎?歷史命令用法可多了!若是我想要執行上一個指令,除了使用上下鍵以外,我能夠直接以‘ !! ’來下達上個指令的內容,此外, 我也能夠直接選擇下達第 n 個指令,‘ !n’來執行,也可使用指令標頭,例如 ‘ !vi’來執行最近指令開頭是 vi的指令列!至關的方便而好用!基本上 history 的用途很大的!可是須要當心安全的問題!尤爲是 root 的歷史紀錄檔案!由於不當心的 root 會將不少的重要資料在執行的過程當中會被紀錄在~/.bash_history當中,若是這個檔案被解析的話,後果不堪吶!不管如何,使用 history 配合‘ !’曾經使用過的指令下達是頗有效率的一個指令方法!!shell