我设置了,export HISTSIZE=99999999999999但这是最好的方法吗?我不知道是否会发生溢出。我正在寻找一种经过测试的可靠方法来删除命令历史记录限制。
小智 72
它确实没有(很好)记录在案,我猜这个计划中 99% 的 bash 用户确实将 HISTSIZE 设置为一个非常大的数字。
在 GNU bash 中,历史是通过强大的 readline 库处理的。该库可以选择限制历史大小(readline 行话中的“stifle”)或不限制,bash 只是将 readline 历史设置为 stifled/unstifled。如果您查看例如 GNU bash 版本 4.2,文件 variables.c,第 4443 行,函数 void sv_histsize (char*),您会发现此注释(以及随后函数中的整个 stifling/unstifling):
/* HISTSIZE 或 HISTFILESIZE 变量更改后要做什么。
如果此 HISTSIZE 有值(并且是数字),则扼杀历史记录。否则,如果此变量没有值,则
取消历史记录。如果名称是 HISTFILESIZE,并且其值为
数字,则截断历史文件以容纳不超过那么多
行。*/
所以这应该可以解决问题:
export HISTSIZE=""
Run Code Online (Sandbox Code Playgroud)
还有这个(如果你觉得挑衅):
export HISTSIZE="GOTCHA"
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。