我注意到文件中的一些设置.bashrc
看起来.inputrc
相同或相似,例如:
shopt -s nocaseglob
对抗set completion-ignore-case
export HISTSIZE
对抗set history-size
export HISTFILESIZE
对抗set history-size
设置是否.inputrc
还会影响 python shell 中的完成和历史记录大小(如果在终端内运行)?
受到HISTSIZE
限制history-size
还是超越它?
答案1
从bash
手册中:
history-size
(未设置)设置历史记录列表中保存的最大历史记录条数。如果设置为零,则任何现有历史记录条目都将被删除,并且不会保存新条目。如果设置为小于零的值,则历史条目的数量不受限制。默认情况下,历史条目数设置为
HISTSIZE
shell 变量的值。如果尝试设置history-size
为非数字值,历史条目的最大数量将设置为 500。
所以如果你设置了HISTSIZE
,就不要设置history-size
了.inputrc
。 readline 库(其.inputrc
配置)并不关心您设置的内容HISTFILESIZE
。 是当 shell 会话退出时历史文件 ( ) 被截断HISTFILESIZE
的大小(由,而不是由 readline 库截断)。$HISTFILE
bash
bash
根据问题“有没有办法将bash中的历史列表的大小设置为超过5000行?”,如果两者都设置了, history-size
readline 库的设置似乎会覆盖HISTSIZE
shell 中的设置。
shell选项与中的设置nocaseglob
不一样。 shell 选项与文件名通配行为有关,而 readline 设置与文件名完成(当您按命令行时)有关。completion-ignore-case
.inputrc
Tab
这些.inputrc
设置影响所有使用 readline 库的程序,而不仅仅是bash
.
bash
可能会开始没有通过使用--noediting
标志调用它来支持 readline。
请注意,两者HISTSIZE
和HISTFILESIZE
都是外壳变量,不是环境变量,因此不需要导出。