CentOS7上使用history刪除部分歷史記錄

由於誤操作誤登錄了別人的服務器,做了一系列操作後,突然發覺不對,趕緊銷燬現場。
使用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文件就可以直接修改歷史記錄了。可以改成任意的樣子。
修改完成後,執行:

  1. history -c清空當前會話中的歷史記錄緩存
  2. history -r讀取~/.bash_history文件中的歷史記錄到緩存中

可以看到已經更新了。
有一條命令可以一鍵執行:
sed -i 'n,1000d' -i ~/.bash_history && history -c && history -r
其中,n爲從哪一條開始刪除,命令可以打印出更新後的.bash_history文件內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章