隱藏 Linux 命令列歷史

2021-10-09 10:40:32 字數 1947 閱讀 1040

如果你是 linux 命令列的使用者,有的時候你可能不希望某些命令記錄在你的命令列歷史中。原因可能很多,例如,你在公司擔任某個職位,你有一些不希望被其它人濫用的特權。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時誤執行。

然而,有方法可以控制哪些命令進入歷史列表,哪些不進入嗎?或者換句話說,我們在 linux 終端中可以開啟像瀏覽器一樣的無痕模式嗎?答案是肯定的,而且根據你想要的具體目標,有很多實現方法。在這篇文章中,我們將討論一些行之有效的方法。

是的,沒看錯。在命令前面插入空格,這條命令會被 shell 忽略,也就意味著它不會出現在歷史記錄中。但是這種方法有個前提,只有在你的環境變數 histcontrol 設定為 「ignorespace」 或者 「ignoreboth」 才會起作用。在大多數情況下,這個是預設值。

所以,像下面的命令(lctt 譯註:這裡[space]表示輸入乙個空格):

[space]echo "this is a top secret"
如果你之前執行過如下設定環境變數的命令,那麼上述命令不會出現在歷史記錄中。

export histcontrol = ignorespace
下面的截圖是這種方式的乙個例子。

第四個 「echo」 命令因為前面有空格,它沒有被記錄到歷史中。

如果你想禁用某個會話所有歷史,你可以在開始命令列工作前簡單地清除環境變數histsize的值即可。執行下面的命令來清除其值:

export histsize=0
histsize表示對於 bash 會話其歷史列表中可以儲存命令的個數(行數)。預設情況,它設定了乙個非零值,例如在我的電腦上,它的值為 1000。

所以上面所提到的命令將其值設定為 0,結果就是直到你關閉終端,沒有東西會儲存在歷史記錄中。記住同樣你也不能通過按向上的箭頭按鍵或執行 history 命令來看到之前執行的命令。

這可以看作是前一部分所提方案的另外一種實現。唯一的區別是在你完成所有工作之後執行這個命令。下面是剛說到的命令:

history -cw
剛才已經提到,這個和histsize方法有相同效果。

雖然前面描述的方法(2 和 3)可以實現目的,它們可以清除整個歷史,在很多情況下,有些可能不是我們所期望的。有時候你可能想儲存直到你開始命令列工作之間的歷史記錄。對於這樣的需求,你開始在工作前執行下述命令:

[space]set +o history
備註:[space]表示空格。並且由於空格的緣故,該命令本身也不會被記錄。

上面的命令會臨時禁用歷史功能,這意味著在這命令之後你執行的所有操作都不會記錄到歷史中,然而這個命令之前的所有東西都會原樣記錄在歷史列表中。

要重新開啟歷史功能,執行下面的命令:

[space]set -o history
它將環境恢復原狀,也就是你完成了你的工作,執行上述命令之後的命令都會出現在歷史中。

現在假設歷史記錄中已經包含了一些你不希望記錄的命令。這種情況下我們怎麼辦?很簡單。直接動手刪除它們。通過下面的命令來刪除:

history | grep "part of command you want to remove"
上面的命令會輸出歷史記錄中匹配的命令,每一條前面會有個數字。

一旦你找到你想刪除的命令,執行下面的命令,從歷史記錄中刪除那個指定的項:

history -d [num]
同樣的,你可以使用向上的箭頭一直往回翻看歷史記錄。當你發現你感興趣的命令出現在終端上時,按下 「ctrl + u」清除整行,也會從歷史記錄中刪除它。

原文:隱藏 linux 命令列歷史 | 運維生存時間

隱藏你的 Linux 的命令列歷史

1.在命令前插入空格 export histcontrol ignorespace 執行命令時 以空格開頭,則不會記錄到history 2.禁用當前會話的所有歷史記錄 export histsize 0 history cw 都會清空history 3.只針對你的工作關閉歷史記錄 set o his...

如何隱藏你的Linux的命令列歷史

如果你是 linux 命令列的使用者,有的時候你可能不希望某些命令記錄在你的命令列歷史中。原因可能很多,例如,你在公司擔任某個職位,你有一些不希望被其它人濫用的特權。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時誤執行。然而,有方法可以控制哪些命令進入歷史列表,哪些不進入嗎?或者換句話說,我們...

如何隱藏你的 Linux 的命令列歷史

摘要 如果你是 linux 命令列的使用者,有的時候你可能不希望某些命令記錄在你的命令列歷史中。原因可能很多,例如,你在公司擔任某個職位,你有一些不希望被其它人濫用的特權。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時誤執行。如果你是 linux 命令列的使用者,有的時候你可能不希望某些命令記...