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文件就可以直接修改歷史記錄了。可以改成任意的樣子。
修改完成后,執行:

history -c清空當前會話中的歷史記錄緩存
history -r讀取~/.bash_history文件中的歷史記錄到緩存中
可以看到已經更新了。
有一條命令可以一鍵執行:
sed -i 'n,1000d' -i ~/.bash_history && history -c && history -r
其中,n為從哪一條開始刪除,命令可以打印出更新后的.bash_history文件內容。
————————————————
版權聲明:本文為CSDN博主「stpice」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/stpice/article/details/103754597


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM