不一樣的可行方法linux
前面兩種方法已經在以前一篇文章中描述了。若是你已經瞭解,這部分能夠略過。然而,若是你不瞭解,建議仔細閱讀。shell
1. 在命令前插入空格bash
是的,沒看錯。在命令前面插入空格,這條命令會被 shell 忽略,也就意味着它不會出如今歷史記錄中。可是這種方法有個前提,只有在你的環境變量 HISTCONTROL 設置爲 "ignorespace" 或者 "ignoreboth" 纔會起做用。在大多數狀況下,這個是默認值。this
因此,像下面的命令(這裏 [space] 表示輸入一個空格):spa
[space]echo "this is a top secret"
若是你以前執行過以下設置環境變量的命令,那麼上述命令不會出如今歷史記錄中。命令行
export HISTCONTROL = ignorespace
下面的截圖是這種方式的一個例子。教程
第四個 "echo" 命令由於前面有空格,它沒有被記錄到歷史中。rem
2. 禁用當前會話的全部歷史記錄get
若是你想禁用某個會話全部歷史,你能夠在開始命令行工做前簡單地清除環境變量 HISTSIZE 的值便可。執行下面的命令來清除其值:變量
export HISTSIZE=0
HISTSIZE 表示對於 bash 會話其歷史列表中能夠保存命令的個數(行數)。默認狀況,它設置了一個非零值,例如在個人電腦上,它的值爲 1000。
因此上面所提到的命令將其值設置爲 0,結果就是直到你關閉終端,沒有東西會存儲在歷史記錄中。記住一樣你也不能經過按向上的箭頭按鍵或運行 history 命令來看到以前執行的命令。
3. 工做結束後清除整個歷史
這能夠看做是前一部分所提方案的另一種實現。惟一的區別是在你完成全部工做以後執行這個命令。下面是剛說到的命令:
history -cw
剛纔已經提到,這個和 HISTSIZE 方法有相同效果。
4. 只針對你的工做關閉歷史記錄
雖然前面描述的方法(2 和 3)能夠實現目的,它們能夠清除整個歷史,在不少狀況下,有些可能不是咱們所指望的。有時候你可能想保存直到你開始命令行工做之間的歷史記錄。對於這樣的需求,你開始在工做前執行下述命令:
[space]set +o history
備註:[space] 表示空格。而且因爲空格的緣故,該命令自己也不會被記錄。
上面的命令會臨時禁用歷史功能,這意味着在這命令以後你執行的全部操做都不會記錄到歷史中,然而這個命令以前的全部東西都會原樣記錄在歷史列表中。
要從新開啓歷史功能,執行下面的命令:
[Space]set -o history
它將環境恢復原狀,也就是你完成了你的工做,執行上述命令以後的命令都會出如今歷史中。
5. 從歷史記錄中刪除指定的命令
如今假設歷史記錄中已經包含了一些你不但願記錄的命令。這種狀況下咱們怎麼辦?很簡單。直接動手刪除它們。經過下面的命令來刪除:
history | grep "part of command you want to remove"
上面的命令會輸出歷史記錄中匹配的命令,每一條前面會有個數字。
一旦你找到你想刪除的命令,執行下面的命令,從歷史記錄中刪除那個指定的項:
history -d [num]
下面是這個例子的截圖。
第二個 ‘echo’命令被成功的刪除了。
(若是你不但願上述命令自己也被記錄進歷史中,你能夠在上述命令前加個空格)
一樣的,你可使用向上的箭頭一直往回翻看歷史記錄。當你發現你感興趣的命令出如今終端上時,按下 「Ctrl + U」清除整行,也會從歷史記錄中刪除它。
總結
有多種不一樣的方法能夠操做 Linux 命令行歷史來知足你的需求。然而請記住,從歷史中隱藏或者刪除命令一般不是一個好習慣,儘管本質上這並無錯。可是你必須知道你在作什麼,以及可能產生的後果。
免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/