根目錄的 .bash_history 檔案可能如下所示:
line 1
line 2
line 3
line 4
現在我刪除第3行和第4行
su
vim ~/.bash_history
#delete line 3 und 4 with dd
line 1
line 2
:wq
ENTER
CTRL + D
但如果我現在看一下 .bash_history:
su
cat ~/.bash_history
#.bash_history
line 1
line 2
vim ~/.bash_history
那麼我怎麼才能只刪除歷史記錄的一部分而不顯示最後一行顯示我編輯了文件。
謝謝
答案1
使用:
su
vim ~/.bash_history
如果命令有歷史記錄,則不會保存該命令空間在它的前面。
這取決於HISTCONTROL
變數。預設情況下(對於 root)它是ignoredups:ignorespace
.
答案2
如同已經提到的,您可以在命令之前使用空格,但這取決於HISTCONTROL
變數。這裡有一些替代方案 -
您實際上可以告訴終端停止並開始記錄歷史記錄。可以使用這些命令來完成 -
set +o history #stop recording history
set -o history #start recording history
.bash_history
如果您已經執行了一些命令並且忘記停止記錄或使用空間,只要會話仍然打開,您仍然可以阻止寫入。當您關閉終端機會話時,它將寫入該檔案。因此,您可以在關閉會話之前(su
在您的情況下退出之前)刪除當前會話歷史記錄。可以使用這個指令來完成 -
history -c
一個極端的選擇是在執行完所有命令後終止終端進程。您基本上可以在進程將歷史記錄寫入檔案之前終止該進程。
kill -9 $$
$$
將給出當前終端進程 ID 並kill -9
殺死該進程。