如何设置命令历史调用的数量

如何设置命令历史调用的数量

我正在使用 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

相关内容