如何设置历史记录召回的命令数


15

我正在使用bash。要浏览我的命令历史记录,我正在调用该history命令,我相信它正在调用同名的Gnu程序。(我不知道是否有更好的bash特定方式)。

在我的.bashrc中,我当前有一行export PROMPT_COMMAND='history -a'可以保存我正在运行的多个bash会话中的历史记录。

如果我进行历史记录,那么我目前仅看到524个条目。这是可配置的吗?我想将其增加到更大的数量,例如2000。

Answers:


19

首先,history bash的特定方式,没有更好的选择。history如您所见,该命令是内置的bash

$ type history 
history is a shell builtin

现在,它记住的命令数由HISTSIZE变量控制。要将其设置为更大的数字,请将此行添加到您的行中.profile(为什么这比比它更好的地方.bashrc,请参见此处):

export HISTSIZE=2000

从现在开始,history将返回您运行的最后2000条命令。


5

是的,man bash说:

HISTSIZE-在命令历史记录中要记住的命令数

但是有一个Readline变量: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变更


2

HISTSIZE变量指示在运行历史记录中保留HISTFILESIZE多少个命令,并确定在退出外壳后将保存来自运行历史记录的几条命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.