当您重新使用和编辑上一个命令时,某些bash实例会更改命令历史记录,而其他实例显然不会。我一直在搜索,但是找不到说明如何防止历史记录中的命令在重用和编辑时被修改的内容。
有这样的问题这一个,但似乎说如何应对历史正在编辑。我最近才遇到一个bash实例,该实例在您重用命令时会编辑历史记录-我使用过的所有以前的bash shell(据我所知)都配置为在重用时不更改历史记录并编辑命令。(也许在过去的十五年左右的时间里,我一直没有适当注意我的外壳历史...)
因此,这可能是最好的问题:我可以告诉bash从不修改历史记录吗?
不将
—
斯特凡Chazelas
set revert-all-at-newline on
你链接解决您的问题,这个问题吗?您能说明如何重现问题吗?请注意,您还可以zsh
将行为用于更符合您想要的行为。
@mikeserv查看手册页,
—
理查德·怀斯曼
history -p
对于我要重用的每个命令,我都需要做些什么-是吗?如果是这样,那不是我想要的。如前所述,我使用过bash实例,这些实例在重用和编辑命令时不会修改历史记录。
@StéphaneChazelas不,我认为不是
—
理查德·怀斯曼
revert-all-at-newline
我所需要的。如果我编辑命令并按CTRL-C取消它,我也不希望它影响历史记录。我以前从未需要配置bash来不修改历史记录,这就是为什么有时重新安装会以一种方式而有时又以另一种方式表现出来的原因之一。顺便说一下,在不编辑命令重用历史记录的实例上,a bind -V | grep revert
表示revert-all-at-newline
设置为“ off”。
实际上,这与无关
—
Orion
bash
。这一切都与readline有关。readline
库有不同的实现,它也有自己的一组设置(其中有很多)和自己的配置文件。我不确定这是设置还是实现上的差异,但是您应该搜索与readline相关的文档,而不是bash。
history -p
用来进行历史记录扩展而不会影响历史记录文件。您可以执行history -s
相同操作并将其追加到历史记录中,而无需执行。您可以HISTIGNORE='start of a command I never want in history.*:command2.*'
将某些命令保留在历史记录之外。