Linux檢視歷史命令 history

2021-06-22 15:56:01 字數 2229 閱讀 3677

root@linux ~]# history [n]

[root@linux ~]# history [-c]

[root@linux ~]# history [-raw] histfiles

引數: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 有關!

範例二:列出目前最近的 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 配合『 !』曾經使用過的指令下達是很有效率的乙個指令方法!!

Linux檢視歷史命令

今天面試問到怎麼檢視歷史命令,我說用上方向鍵把面試官逗笑了,特此查詢記錄一下。linux中,bash輸入的命令記錄,通過history檢視所有歷史記錄。記錄會存在.bash history 或者root bash history 中,通過echo histfile 使用此命令檢視環境變數 histo...

linux刪除或隱藏命令歷史記錄history

1 環境變數新增histcontrol ignorespace 在命令前面插入空格,這條命令會被 shell 忽略,也就意味著它不會出現在歷史記錄中。但是這種方法有個前提,只有在你的環境變數 histcontrol 設定為 ignorespace 或者 ignoreboth 才會起作用。rusky ...

linux檢視歷史命令history

linux的history命令的作用是,記錄執行過的命令。用法 history n n為數字,列出最近的n條命令 c 將目前shell中的所有history命令消除 history raw histfiles a 將目前新增的命令寫入histfiles,預設寫入 bash history r 將hi...