例如,在 bash 中我可以输入!xyz
which 将运行我最后输入的以 开头的命令xyz
。
我怎样才能调出我最后输入的命令xyz
但不执行它?
例如,这样我可以在执行之前更改参数....
答案1
您可以这样做:在命令提示符下按Ctrl+ r,然后键入要调用的命令(在您的情况下为 )xyz
。这将显示完整的命令而无需执行它。
答案2
尝试!xyz:p
;它会将命令回调到历史记录的顶部而不执行它,因此例如向上箭头可以立即访问它进行交互式编辑。
顺便说一句,我习惯在调用可能挖掘出有害信息的正则表达式命令时这样做,因为一个匆忙的!r
,旨在调用最近的rsync ...
命令,被拉回来了并执行比rm *
rsync 更晚被推送到堆栈。
答案3
执行以下命令。它将回显最后执行的命令。您可以复制和编辑该命令。此命令已在 debian 中测试。
历史|tail -2 | grep -v 历史| cut -d ' ' -f4-
或者按住 ctrl+R 并输入上一个命令的首字母。它会根据你的输入列出你之前执行的命令。一旦它显示所需的命令,只需按右箭头即可选择该命令。
答案4
如果反向历史搜索失败,请执行以下操作:
$ history | grep WHAT_YOU_LOOK_FOR
或者:
$ grep WHAT_YOU_LOOK_FOR ~/.bash_history