由於誤操作誤登錄了別人的服務器,做了一系列操作後,突然發覺不對,趕緊銷燬現場。
使用history命令刪除本次登錄後做過的歷史記錄,但是保留原始的記錄。
首先使用help history
,命令查看幫助文檔:
[root@10 ~]# help history
history: history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 參數 [參數...]
顯示或操縱歷史列表。
帶行號顯示歷史列表,將每個被修改的條目加上前綴 `*'。
參數 N 會僅列出最後的 N 個條目。
選項:
-c 刪除所有條目從而清空歷史列表。
-d 偏移量 從指定位置刪除歷史列表。
-a 將當前繪畫的歷史行追加到歷史文件中
-n 從歷史文件中讀取所有未被讀取的行
-r 讀取歷史文件並將內容追加到歷史列表中
中
-w 將當前歷史寫入到歷史文件中
並追加到歷史列表中
-p 對每一個 ARG 參數展開歷史並顯示結果
而不存儲到歷史列表中
-s 以單條記錄追加 ARG 到歷史列表中
如果給定了 FILENAME 文件名,則它將被作爲歷史文件。否則
如果 $HISTFILE 變量有值的話使用之,不然使用 ~/.bash_history 文件。
如果 $HISTTIMEFORMAT 變量被設定並且不爲空,它的值會被用於
strftime(3) 的格式字符串來打印與每一個顯示的歷史條目想關聯的時
間戳,否則不打印時間戳。
退出狀態:
返回成功,除非使用了無效的選項或者發生錯誤。
清空歷史記錄
通常使用history -c
可以清除掉緩存,但是由於使用不同的用戶登錄,會在不同的用戶目錄中創建~/.bash_history
文件,所以要想徹底刪除,還需要將.bash_history
中的內容清空。
一鍵命令:
history -c && >~/.bash_history
刪除某一條歷史記錄
如果只是想要刪除某一條歷史記錄,可以使用history -d 第幾條
命令,在幫助文檔中也有說明。
刪除當前會話執行命令的記錄
由於登錄後,history命令都會保存在內存中,前操作的其實都是存在在內存中的歷史記錄緩存。在使用history
命令後,會將當前操作寫入~/.bash_history
文件,然後打印出來。如果沒有執行history
命令的話,直接使用history -r
,會將文件中的歷史記錄在此刷入緩存,那麼之前操作的記錄就不會保存了。
隨意更新歷史記錄
如果已經使用history
或者history -a
將歷史記錄寫入~/.bash_history
文件的話,那麼直接操作~/.bash_history
文件就可以直接修改歷史記錄了。可以改成任意的樣子。
修改完成後,執行:
history -c
清空當前會話中的歷史記錄緩存history -r
讀取~/.bash_history
文件中的歷史記錄到緩存中
可以看到已經更新了。
有一條命令可以一鍵執行:
sed -i 'n,1000d' -i ~/.bash_history && history -c && history -r
其中,n
爲從哪一條開始刪除,命令可以打印出更新後的.bash_history
文件內容。