Linux 中的 history 命令
-
Bash 中的
history
命令 -
Bash 中的
history
環境變數 - 在 Bash 中顯示歷史
-
在 Bash 中顯示歷史中的前
n
個命令 -
在 Bash 中顯示歷史上最後的
n
個命令 - 在 Bash 中搜尋歷史
- 從 Bash 的歷史記錄中刪除命令
- 刪除 Bash 中的全部歷史記錄
本教程展示了使用 history
命令來顯示 Bash 歷史記錄、在歷史記錄中搜尋、刪除命令以及清除整個歷史記錄。
Bash 中的 history
命令
Bash 中的 history
命令顯示在 shell 會話中執行的所有命令的列表。history
命令將在 shell 上執行的每個命令視為一個事件,併為其分配一個事件編號。
以後可以使用事件編號訪問這些命令,也可以修改它們。主目錄中的 .bash_history
檔案還儲存終端上最近執行的命令。
Bash 中的 history
環境變數
與 history
命令相關的三個環境變數是: HISTFILE
、HISTFILESIZE
和 HISTSIZE
。環境變數 HISTFILE
儲存 Bash 歷史檔案的名稱和位置 .bash_history
。
環境變數 HISTFILESIZE
儲存儲存在 .bash_history
檔案中的命令數,HISTSIZE
儲存可以快取的命令數。
下圖顯示了三個環境變數中儲存的值; HISTFILE
、HISTFILESIZE
和 HISTSIZE
。
.bash_history
檔案可以儲存 2000 條命令,一旦達到最大命令數,將刪除最舊的命令,並儲存新的命令。
系統可以快取的最大命令數為 1000。
你必須編輯主目錄中的 .bashrc
檔案以修改三個環境變數。
在 Bash 中顯示歷史
要在 Bash 中顯示所有 history
命令,請鍵入 history
並按 Enter。當執行下圖中的 history
命令時,我們看到部分輸出顯示到標準終端。
命令前面的數字是與每個命令關聯的事件編號。
在 Bash 中顯示歷史中的前 n
個命令
我們可以使用 history
命令和 head
命令來顯示歷史中的前 n
個命令。我們在下圖中顯示了歷史上的前 10
個命令。
我們使用 history
命令、管道運算子和 head
命令來顯示前 10
個命令。history
命令輸出通過管道傳送到 head
命令,該命令僅獲取歷史輸出的前 10
行並將它們顯示到標準輸出。
在 Bash 中顯示歷史上最後的 n
個命令
我們可以使用 history
命令來顯示最後 n
個命令並傳遞一個整數作為引數。我們傳遞的整數告訴 history
命令顯示歷史中最後的 n
命令。
我們使用 history
命令並傳遞下圖中的整數 7
。這意味著 history
命令將顯示歷史中最後的 7
命令。
在 Bash 中搜尋歷史
我們還可以使用 history
命令和 grep
命令來搜尋歷史記錄中的特定模式。下圖在歷史記錄中使用 grep
命令搜尋正規表示式 delft
。
我們使用 history
命令、管道運算子和 grep
命令在歷史記錄中搜尋正規表示式。history
命令的輸出通過管道傳送到 grep
命令,該命令在其中搜尋正規表示式 delft
。
所有匹配正規表示式的行都顯示到標準終端。
從 Bash 的歷史記錄中刪除命令
history
命令還可以從歷史記錄中刪除特定命令。要從歷史記錄中刪除命令,我們使用帶有 -d
選項的 history
命令和命令的事件編號。
在下圖中,我們使用命令 history 10
列出歷史中最後的 10
命令。我們決定刪除已突出顯示的命令。
我們使用帶有 -d
選項的 history
命令,並傳入突出顯示命令的事件編號。它從歷史記錄中刪除該命令。
為了確認命令是否已被刪除,我們檢查歷史記錄中的最後 10
行,我們看到事件 ID 為 312
的命令 pwd
不存在。
刪除 Bash 中的全部歷史記錄
要刪除歷史記錄中的所有條目,我們使用帶有 -c
選項的 history
命令。它會刪除歷史記錄中的所有條目。
在下圖中,我們使用 history
命令列出歷史中最後的 5
個命令。稍後,我們使用帶有 -c
選項的 history
命令來清除歷史記錄中的所有條目。
我們使用 history
命令顯示歷史中的所有條目,我們看到所有條目都已被清除。