- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
1. 在命令前插入空格
是的,沒看錯。在命令前面插入空格,這條命令會被 shell 忽略,也就意味著它不會出現在歷史記錄中。但是這種方法有個前提,只有在你的環境變量 HISTCONTROL 設置為 “ignorespace” 或者 “ignoreboth” 才會起作用。在大多數情況下,這個是默認值。
所以,像下面的命令:
#[space]echo "this is a top secret"
如果你之前執行過如下設置環境變量的命令,那么上述命令不會出現在歷史記錄中。
export HISTCONTROL = ignorespace
2. 禁用當前會話的所有歷史記錄
如果你想禁用某個會話所有歷史,你可以在開始命令行工作前簡單地清除環境變量 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]
同樣的,你可以使用向上的箭頭一直往回翻看歷史記錄。當你發現你感興趣的命令出現在終端上時,按下 “Ctrl + U”清除整行,也會從歷史記錄中刪除它。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP