如何設定命令歷史調用的數量

如何設定命令歷史調用的數量

我正在使用 bash。為了瀏覽我的命令歷史記錄,我正在呼叫一個history命令,我相信該命令正在呼叫同名的 Gnu 程式。 (我不知道是否有更好的 bash 特定方法)。

在我的 .bashrc 中,我目前有一行export PROMPT_COMMAND='history -a'用於保存我正在運行的多個 bash 會話的歷史記錄。

如果我查看歷史記錄,我目前只能看到 524 個條目。這是可配置的嗎?我想將其增加到更大的數字,例如 2000。

答案1

首先,history bash 特定的方式,沒有更好的了。該history命令是 bash 內建命令,您可以透過運行看到

$ type history 
history is a shell builtin

現在,它記住的命令數量由HISTSIZE變數控制。要將其設置為更大的數字,請將此行添加到您的.profile(為什麼這是一個比它更好的地方.bashrc,請參閱這裡):

export HISTSIZE=2000

從現在開始,history將返回您最近執行的 2000 個命令。

答案2

HISTSIZE變數指示在執行歷史記錄中保存多少命令,並HISTFILESIZE確定 shell 退出後保存運行歷史記錄中的多少命令。

答案3

是的,man bash說:

HISTSIZE - 指令歷史記錄中要記住的指令數

但有一個Readlines 變數:history-size

設定歷史記錄清單中儲存的最大歷史記錄條數。如果設定為零,則任何現有歷史記錄條目都將被刪除,並且不會儲存新條目。如果設定為小於零的值,則歷史條目的數量不受限制。缺省情況下,歷史記錄條數沒有限制。

您可以history-size使用HISTSIZE=1000bind 'set history-size 1000'中的以下行進行設定~/.inputrcset history-size 1000

例子:

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-size可用時間bash-4.0-alpha變化

答案4

For more information, I am adding it. I used ubuntu 18. This worked for me.
$ echo $HISTSIZE
1000
$ echo $HISTFILESIZE
1000
$ echo $HISTFILE

vi /home/siva/.bashrc  # here we need to update the HISTSIZE variable to the required thing.
NOTE: open new terminal and check updated value will bere printed if you run $ echo $HISTSIZE

Reference Link:
https://www.redhat.com/sysadmin/history-command

相關內容