使用 Ctrl+C 清除当前输入行后如何从历史记录中检索命令

使用 Ctrl+C 清除当前输入行后如何从历史记录中检索命令

当我输入某些命令时,通常需要运行不同的命令。我曾经在视频中看到他们点击了^C,然后从历史记录中检索了该命令。

答案这里(第二段)也谈到了我正在寻找的这种确切行为。但没有说如何让它发挥作用。

引用答案->

或者,如果您处于嵌套命令(例如 while 或 for 循环)中,则按CTRL+会特别有用C,这会将命令添加到历史记录中而不执行它并清除该行,以便您可以使用 shell 的历史记录来调用它当您准备好使用它时。

我知道我们可以使用Ctrl+UCtrl+K然后Ctrl+ Y,但我正在寻找这个特定的解决方案。

我浏览了所有这些来源:

https://superuser.com/questions/563939/save-command-to-history-without-executing-in-bash
如何保存输入的命令而不执行它?
在检查某些内容时记住半输入的命令
https://stackoverflow.com/questions/35807653/how-do-i-add-a-command-to-bash-history-without-executing-it
https://superuser.com/questions/555310/bash-save-history-without-exit
取消当前命令但保存到历史记录
从当前命令的中间运行子shell
回到我已经部分编写的命令

答案1

Shell 通常不会将Ctrl-C-cancelled 命令输入到历史记录中。

我在 GNU Bash 或 GNU Readline 文档中找不到任何有关启用将取消的命令放入历史记录的行为的内容。

如果您正在键入命令并意识到需要先运行另一个命令,请跳到该行的开头并使用 注释掉您的命令#。然后按 Enter 发送它。注释行放入历史记录中,以便您以后可以调用它,删除评论字符并继续处理它。

相关内容