Answers:
设置HISTSIZE
并HISTFILESIZE
在.bashrc中为空字符串:
HISTSIZE=
HISTFILESIZE=
在bash 4.3及更高版本中,您还可以使用HISTSIZE=-1 HISTFILESIZE=-1
:
n. Setting HISTSIZE to a value less than zero causes the history list to be
unlimited (setting it 0 zero disables the history list).
o. Setting HISTFILESIZE to a value less than zero causes the history file size
to be unlimited (setting it to 0 causes the history file to be truncated
to zero size).
HISTSIZE= HISTFILESIZE=
结果会完全禁用bash历史记录,至少对我而言。
HISTSIZE=-1 HISTFILESIZE=-1
禁用了我的历史记录,但HISTSIZE= HISTFILESIZE=
做到了。这里的CentOS 7。
HISTSIZE= HISTFILESIZE=
你应该export HISTSIZE=
export HISTFILESIZE=
多年来,经过了许多大的,丑陋的迭代和怪异的边缘案例之后,我现在在.bashrc的简明部分中专门讨论了这一点。
首先,您必须注释掉或删除.bashrc的这一部分(Ubuntu的默认设置)。如果您不这样做,那么某些环境(例如正在运行的screen
会话)仍会截断您的历史记录:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
其次,将其添加到.bashrc的底部:
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
注意:每条命令在运行后都会立即写入,因此,如果您不小心粘贴了密码,就不能仅仅“ kill -9 %%”来避免写入历史记录,您需要手动将其删除。
还要注意,每个bash会话都会将完整的历史文件加载到内存中,但是即使您的历史文件增长到10MB(这将花费很长很长的时间),您也不会注意到对bash启动时间的很大影响。
HISTFILESIZE=
和为HISTSIZE=
空而不是-1,并确保在.bashrc或.bash_profile或.profile中没有这些参数的其他声明。
.bashrc
,我在另一个由.bashrc ...加载的文件上进行了设置,现在可以工作了!谢谢!
cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(并可能HISTSIZE
)立即生效的事实不能过分强调。
如约尔格拜尔如上所述,HISTSIZE
和HISTFILESIZE
是关键。
此外,您绝对应该检查环境变量HISTCONTROL
,它可以使您完成一些很酷的事情,例如不存储重复的历史命令(HISTCONTROL=erasedups
)。如果必须浏览数百行cd ..
或类似的行,没有无限的历史记录是没有意义的。
链接:在这里,并使用bash历史记录。bash Variable FAQ也值得浏览。
Ctrl-r
somechars Ctrl-o
Ctrl-o
Ctrl-o
Ctrl-o
。这就是为什么我在历史记录中保留重复项。
Ctrl-o
?
Ctrl-o
在提示符处运行命令,并在历史记录中的前一个命令之后立即显示该命令。一个好处是,在Ctrl-r
用于查找旧命令(可能使用向上和向下箭头移动到历史记录中的相邻命令)之后,只要保持Ctrl
按下并o
多次按下即可再次运行先前的一系列命令,即使在无限循环中也足够了如果你想。另见GNU的Readline -维基百科
这里(至少)有两个相关的环境变量:
我认为我们可以同意“ 无限”一词通常与很大一样(或者您有无限的文件存储空间吗?)。因此,只需将值设置得很大即可。