有时,将命令直接添加到 Bash 的历史记录中而不实际执行它会很有用。到目前为止,我发现最不可行的方法是#
在命令前面添加一个并按回车键。有没有更好的方法?
答案1
history -s
命令
答案2
history -s
命令
您甚至可以绑定一个按键来为您执行此操作。您可以在 Bash 提示符下输入以下内容:
bind '"\C-q": "\C-a history -s \C-j"'
或者将其添加到您的~/.inputrc
:
"\C-q": "\C-a history -s \C-j"
然后你可以输入一些内容并按Ctrl- q,它将被添加到历史记录中而不会被执行。“history”之前的空格会导致命令history
本身不是HISTCONTROL
如果变量包含ignorespace
或 ,则将其添加到历史记录中ignoreboth
。可以选择另一个按键来代替“\Cq”。
答案3
很难想出比一个字符“命令”更短的命令,所以我们真的需要进入按键级别。使用我的 bash 设置和美国键盘,您现在需要执行的操作是:
- 转到行首::CTRLA+1 指令,+2 按键
- 添加
#
(需要SHIFT):+1 指令,+2 按键 - 将其附加到历史记录中ENTER:+1 指令、+1 按键
所以总共有 3 条指令,5 次按键。
只需 1 条指令、2 次按键即可完成ALT#相同操作。
YMMV,取决于您的键盘布局和 bash 配置。
答案4
有时甚至从子进程中添加命令也很有用(这会导致丢失当前命令):
echo "the command" >> ~/.bash_history