我正在使用 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 - 指令歷史記錄中要記住的指令數
但有一個Readline
s 變數:history-size
設定歷史記錄清單中儲存的最大歷史記錄條數。如果設定為零,則任何現有歷史記錄條目都將被刪除,並且不會儲存新條目。如果設定為小於零的值,則歷史條目的數量不受限制。缺省情況下,歷史記錄條數沒有限制。
您可以history-size
使用HISTSIZE=1000
或bind 'set history-size 1000'
中的以下行進行設定~/.inputrc
:set 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