我希望我的.bash_history
文件无限制。例如因此,我总是可以回头看看我是如何构建/配置某些东西的,或者那些漂亮的命令是什么,或者几周前某些命令是如何破坏的。我如何更改此设置?无限制Bash历史
回答
集HISTSIZE
和HISTFILESIZE
为空字符串:
HISTSIZE= HISTFILESIZE=
在bash 4.3 and later你也可以使用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).
我可以将此设置全局放入全局bashrc中,以覆盖所有用户的设置吗? – 2014-03-14 22:06:06
(export PROMPT_COMMAND ='history -a')可以立即刷新命令以打击历史记录。 – cruelcage 2014-09-11 13:49:15
设置''HISTSIZE = HISTFILESIZE =''导致完全禁用bash历史记录,至少对我而言。 – 2017-02-27 07:53:32
有(至少)两个相关的ENV瓦尔这里:
- HISTSIZE:在历史文件中的条目数
- HISTFILESIZE:线在历史文件数
我认为我们可以同意,无限制通常与相同很大(或者您是否拥有无限制的文件存储?)。所以只需设置非常大的值。
“应该指出的是,对于非常小的无穷大值,1000000000只等于无穷大。 - sepp2k”lol。是的,我满足于无限的小值(比如说频繁使用终端的月份)。 – 2012-02-28 03:25:44
频繁使用终端的月份是无穷无尽的一小部分。我会说终身使用频繁的终身等同于非常非常非常小的无限价值。但终身使用频繁的终身足以满足我的shell历史。 ;) – iconoclast 2014-07-14 14:36:58
如果将HISTSIZE和/或HISTFILESIZE设置得太大,zsh的旧版本至少会崩溃,因为它会尝试预先分配足够的内存。这在运行使用zsh作为其shell的工具(例如dbx)时变得相关。 – 2017-10-09 19:09:55
正如JörgBeyer上面提到的,HISTSIZE
和HISTFILESIZE
是关键。
此外,你应该肯定退房环境变量HISTCONTROL
,它可以让你不喜欢不存储重复历史命令很酷的事情(HISTCONTROL=erasedups
)。如果您需要浏览数百行cd ..
或类似内容,则无限历史毫无意义。
链接:here和。 bash变量常见问题也是worth browsing。
我grep它,但仍然,很高兴知道。 – 2012-02-28 03:26:53
这些cd的行给你发出命令的上下文。它们实际上非常有用。我无法理解为什么有人会想要删除它们,除非你使用历史的唯一方法是通过一次一个命令分页。 – iconoclast 2014-07-14 14:38:29
@simont我也在HISTCONTROL中使用了ignorespace选项,然后用它来做任何我不想写入历史的东西,比如密码。 – bigtunacan 2015-11-06 15:09:26
许多大型的,丑陋的迭代和怪异的边缘情况,多年来,我现在有一个致力于此的简洁部分my .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"
注:每个命令在运行后立即写入,所以如果你不小心粘贴了一个密码,你不能只为了避免写入历史而“杀死-9 %%”,你需要手动删除它。
还要注意,每个bash命令将加载在内存中的全部历史文件,但即使你的历史文件增长到10MB(这将需要一个很长很长的时间),你不会注意到太多的效果你的bash启动时间。
我能在全球.bashrc中把这个设置使全球它覆盖所有用户的设置? – 2014-03-14 22:05:09
@ user01,我想是的,你可以,我只会设置一个很大的限制。只是要确定。 – freedev 2014-06-09 09:18:40
我做了所有这些和我的日志不断被封顶在2000 :(可以我的版本被窃听吗?任何其他技巧?ubuntu 14.04,bash 4.3.11,HISTFILE =〜/ .bash_eternal_history,HISTFILESIZE = -1,HISTSIZE = -1 ,HISTTIMEFORMAT ='[%F%T]'(而不是'-1'我试过这个空选项也无济于事。) – 2014-06-13 22:21:47
- 1. 增加掠影历史标签限制
- 2. 历史的历史
- 3. sudo su后截短的bash历史
- 4. 从结尾列举的Bash历史
- 5. 当前bash命令不保存历史
- 6. 系统历史记录Linux 5.11(NOT BASH)
- 7. 单更容易命令在bash历史
- 8. 保存命令输出到bash历史
- 9. 没有行号的Bash历史记录
- 10. Cygwin Bash,加载历史文件
- 11. 检索bash的输出历史
- 12. 无论如何要复制文件名到bash剪贴板历史?
- 13. 控制ipython历史长度
- 14. 复制没有历史
- 15. AWS步骤功能历史事件的限制
- 16. 如何限制svn保存的历史数量?
- 17. 如何限制HtmlUnit的历史记录大小?
- 18. 历史限制在tmux中的C-l之后不工作
- 19. Pubnub历史消息限制超过一百
- 20. 带工作历史的无限滚动回到jQuery
- 21. Centos 7- flask授予查看其他用户的bash历史的权限
- 22. jquery的历史,检查历史堆栈
- 23. GWT历史记录:历史记号
- 24. 捕获历史进程历史UNIX?
- 25. friendly_id,从历史
- 26. GWT历史IFRAME
- 27. visualvm历史图
- 28. 在历史
- 29. 历史Api
- 30. Azure Webjobs历史
http://超级用户。com/questions/137438/how-to-unlimited-bash-shell-history – tekknolagi 2012-02-26 21:17:28
我建议将@fotinakis的答案标记为公认的答案,因为它更全面,涵盖了许多奇怪的陷阱。 – 2016-09-10 23:29:05