当我在 bash 提示符上粘贴命令时,它不在历史记录中——我该如何添加它?

当我在 bash 提示符上粘贴命令时,它不在历史记录中——我该如何添加它?

当我使用 将命令粘贴到我的 OS X 或 Ubuntu bash 提示符时CmdV,即使执行了该命令,该命令也不会出现在历史记录中。只有我输入该命令时,该命令才会出现在历史记录中。

如何使粘贴的命令进入 bash 的历史记录?

答案1

有一个“ignorespace”指令不会保存行首有空格的命令,这在剪切和粘贴时是可能的。有一个“ignoredups”指令只保存命令的最早实例,如果您有一个很长的历史文件并且以前使用过该命令,那么这里可能就是这种情况。但是,这两个指令在我的 OSX10.6 机器上都没有设置,所以除非你打开它,否则这些可能无法解释你的情况。

另一种情况是你已进入另一个用户模式,如果你从其他地方剪切并粘贴命令来修复某些问题,那么这种情况很可能就会发生,因此当你退出该用户(通常是 root 用户)的上下文时,你将无法使用 bash 历史记录,因为它在特权用户的历史记录中,而不是你的。

答案2

您可以设置为或HISTCONTROL以外的其他内容。ignorespaceignoreboth

set HISTCONTROL=ignoredups将工作。

答案3

我在 KDE Konsole 中遇到了这个问题。

编辑我的 .bashrc 来改变

HISTCONTROL=ignoreboth

HISTCONTROL=ignoredups

已修复。我想我以前肯定想要方便的“如果我在前面加了空格,则不要将其添加到我的历史记录中”,但现在我在终端之间进行了大量复制和粘贴,这真的很烦人。

相关内容