是否可以為「history」指令設定一個固定數字,僅顯示一定數量的歷史記錄項,例如 100,而不是從開始時間開始的所有內容?
答案1
history n
僅列印n
歷史記錄的行。例如:
$ history 4
2000 type history
2001 help
2002 help history
2003 history 4
$
所以我們可以在你的中創建一個別名.bashrc
:
alias h="history 100"
從help history
:
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
Display or manipulate the history list.
Display the history list with line numbers, prefixing each modified
entry with a `*'. An argument of N lists only the last N entries.
如果您想保留大量歷史記錄(甚至可能是歷史記錄),這很有用無限個。和HISTCONTROL=ignoreboth:erasedups
和反向增量搜尋,這是您實際執行該命令的特殊場合history
。
答案2
設定HISTFILESIZE
並HISTSIZE
可以限制歷史命令的大小。
例如HISTFILESIZE=100
和HISTSIZE=100
。它將限制歷史檔案儲存 100 行,並將HISTFILE
您的 curent 會話命令在記憶體中儲存為 100 行。
當 shell 啟動時,歷史記錄將從變數命名的檔案HISTFILE
(預設 ~/.bash_history)中初始化。如有必要,由 的值命名的檔案HISTFILE
將被截斷,以使其包含的行數不超過變數值指定的行數HISTFILESIZE
。
您可以在文件中新增HISTFILESIZE=100
和。將 100 更改為您想要的數字。HISTSIZE=100
~/.bashrc
解釋
HISTFILESIZE=10
和HISTSIZE=10
- 您開始您的會話。
- 您的 HISTFILE(儲存 bash 指令歷史記錄的檔案)被截斷為包含 HISTFILESIZE=10 行。
- 你寫了 50 行。
- 在 50 個指令結束時,歷史清單中只有指令 41 到 50,其大小由 HISTSIZE=10 決定。
- 您結束會話。
- 假設
histappend
未啟用,命令 41 到 50 將儲存到 HISTFILE 中,該檔案現在包含開頭儲存的 10 個命令以及新寫入的 10 個命令。 - 您的 HISTFILE 被截斷為包含 HISTFILESIZE=10 行。
- 假設
- 您的歷史記錄中現在有 10 個命令 - 您剛剛在剛剛完成的會話中鍵入的最後 10 個命令。
- 當您啟動新會話時,您將從 1 開始,並且 HISTFILESIZE=10。
HISTFILESIZE=10
和HISTSIZE=5
- 您開始您的會話。
- 您的 HISTFILE(儲存 bash 指令歷史記錄的檔案)被截斷為最多包含 HISTFILESIZE=10 行。
- 你寫了 50 行。
- 在 50 個指令結束時,歷史清單中只有指令 46 到 50,其大小由 HISTSIZE=5 決定。
- 您結束會話。
- 假設
histappend
未啟用,命令 46 到 50 將儲存到您的 HISTFILE 中,該檔案現在包含開頭儲存的 10 個命令以及 5 個新寫入的命令。 - 您的 HISTFILE 被截斷為包含 HISTFILESIZE=10 行。
- 假設
- 您的歷史記錄中現在有 10 個命令 - 5 個來自上一個會話,最後 5 個是您在剛完成的會話中輸入的。
- 當您啟動新會話時,您將從 1 開始,並且 HISTFILESIZE=10。
HISTFILESIZE=5
和HISTSIZE=10
- 您開始您的會話。
- 您的 HISTFILE(儲存 bash 指令歷史記錄的檔案)被截斷為最多包含 HISTFILESIZE=5 行。
- 你寫了 50 行。
- 在 50 個指令結束時,歷史清單中只有指令 41 到 50,其大小由 HISTSIZE=10 決定。
- 您結束會話。
- 假設
histappend
未啟用,命令 41 到 50 將儲存到 HISTFILE 中,該檔案現在包含開頭儲存的 5 個命令以及新寫入的 10 個命令。 - 您的 HISTFILE 被截斷為包含 HISTFILESIZE=5 行。
- 假設
- 您的歷史記錄中現在有 5 個命令 - 您剛剛在剛剛完成的會話中鍵入的最後 5 個命令。
- 當您啟動新會話時,您將使用 HISTFILESIZE=5 的 HISTFILE 從步驟 1 開始。