当我使用 将命令粘贴到我的 OS X 或 Ubuntu bash 提示符时CmdV,即使执行了该命令,该命令也不会出现在历史记录中。只有我输入该命令时,该命令才会出现在历史记录中。
如何使粘贴的命令进入 bash 的历史记录?
答案1
有一个“ignorespace”指令不会保存行首有空格的命令,这在剪切和粘贴时是可能的。有一个“ignoredups”指令只保存命令的最早实例,如果您有一个很长的历史文件并且以前使用过该命令,那么这里可能就是这种情况。但是,这两个指令在我的 OSX10.6 机器上都没有设置,所以除非你打开它,否则这些可能无法解释你的情况。
另一种情况是你已进入另一个用户模式,如果你从其他地方剪切并粘贴命令来修复某些问题,那么这种情况很可能就会发生,因此当你退出该用户(通常是 root 用户)的上下文时,你将无法使用 bash 历史记录,因为它在特权用户的历史记录中,而不是你的。
答案2
您可以设置为或HISTCONTROL
以外的其他内容。ignorespace
ignoreboth
set HISTCONTROL=ignoredups
将工作。
答案3
我在 KDE Konsole 中遇到了这个问题。
编辑我的 .bashrc 来改变
HISTCONTROL=ignoreboth
到
HISTCONTROL=ignoredups
已修复。我想我以前肯定想要方便的“如果我在前面加了空格,则不要将其添加到我的历史记录中”,但现在我在终端之间进行了大量复制和粘贴,这真的很烦人。