如何从命令历史中回想一个特定的命令,而不执行它

例如,在bash中,我可以键入!xyz ,它将运行从xyz开始input的最后一个命令。

我怎样才能调出我input的最后一个命令,而不是执行它?
例如,所以我可以在执行之前更改参数….

你可以这样做:在命令提示符下按Ctrl + R ,然后键入你想调用的命令,在你的情况xyz 。 这将显示完整的命令而不执行它。

试试!xyz:p ; 它会将命令回想到历史的顶部而不执行它,所以例如向上箭头可以立即访问它进行交互式编辑。

另一方面,当我回想起使用正则expression式的命令的时候,我做了一个这样的练习,可以想象挖掘出一些有害的东西,因为急于回想最近的rsync ...命令,退出并执行一个rm *最近比rsync推到了堆栈。

  1. 执行以下命令。 它会回应最后执行的命令。 您可以复制和编辑该命令。 这个命令在debian中testing过。

    历史|尾巴-2 | grep -v history | 切-d“'-f4-

  2. 或者按住Ctrl + R键并input上一个命令的起始字母。 它将根据您的input列出您之前执行的命令。 一旦显示出所需的命令,只需按右箭头为了select该命令。

如果反向历史search失败,请执行以下操作:

 $ history | grep WHAT_YOU_LOOK_FOR 

要么:

 $ grep WHAT_YOU_LOOK_FOR ~/.bash_history