gpt4 book ai didi

linux - 如何禁止在 bash 中编辑我的历史记录

转载 作者:IT王子 更新时间:2023-10-29 00:24:08 25 4
gpt4 key购买 nike

在 bash 中,当我回到历史记录,编辑一些命令并运行它时,这个编辑过的命令会附加到历史记录中,而原始命令则保持不变。但是每隔一段时间我都会设法影响原始命令,即我的编辑会替换历史上的原始命令。我不知道这是怎么发生的。

谁能解释一下?我的目标是避免这种情况,因此对先前命令的任何编辑都会附加到历史记录中,并且永远不会替换原始命令。

最佳答案

I somehow manage to affect the original command, i.e. my edit replaces the original command back in history.

没错。如果您返回历史并编辑行,没有按回车键执行命令,而是移动到另一个历史条目,那么您只是编辑了历史条目。如果您随后列出您的历史记录,您将在该行看到一个 *,表明您对其进行了编辑。我发现这个“功能”非常令人沮丧。其他人提供了如何重现这一点的很好的例子。

My goal is to avoid this, so any edit to a previous command always gets appended to history and never replaces the original.

我也想禁用它。我通过 this answer over on unix.stackexchange 找到了解决方案.

总而言之,您需要启用默认关闭的 revert-all-at-newline readline 设置。如果设置开启,那么 bash 将在您执行下一个命令时恢复您对历史记录所做的任何更改。

要在您的 shell 中启用此设置,您应该将以下内容添加到您的 ~/.inputrc 文件中,然后重新启动您的 shell:

$include /etc/inputrc
set revert-all-at-newline on

第一行是必需的,因为我猜如果你提供你自己的 .inputrc 文件默认的 /etc/inputrc 文件是不包括的,这可能不是你想要的想要。

关于linux - 如何禁止在 bash 中编辑我的历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com