例如,在bash中,我可以键入!xyz
,它将运行从xyz
开始input的最后一个命令。
我怎样才能调出我input的最后一个命令,而不是执行它?
例如,所以我可以在执行之前更改参数….
你可以这样做:在命令提示符下按Ctrl + R ,然后键入你想调用的命令,在你的情况xyz
。 这将显示完整的命令而不执行它。
试试!xyz:p
; 它会将命令回想到历史的顶部而不执行它,所以例如向上箭头可以立即访问它进行交互式编辑。
另一方面,当我回想起使用正则expression式的命令的时候,我做了一个这样的练习,可以想象挖掘出一些有害的东西,因为急于回想最近的rsync ...
命令,退出并执行一个rm *
最近比rsync推到了堆栈。
执行以下命令。 它会回应最后执行的命令。 您可以复制和编辑该命令。 这个命令在debian中testing过。
历史|尾巴-2 | grep -v history | 切-d“'-f4-
或者按住Ctrl + R键并input上一个命令的起始字母。 它将根据您的input列出您之前执行的命令。 一旦显示出所需的命令,只需按右箭头为了select该命令。
如果反向历史search失败,请执行以下操作:
$ history | grep WHAT_YOU_LOOK_FOR
要么:
$ grep WHAT_YOU_LOOK_FOR ~/.bash_history