Answers:
bash的历史可以做很多有用的事情,Strg-r
其中Terry Wang提到的搜索是其中一项重要的工作。但是也可以完全按照您的要求进行。
您可以使用重新执行上一个命令!!
。这样,您还可以编辑上一个命令。例如,如果您忘记获得命令的root用户特权
apt-get install a-long-list-of-packages
您无需再次输入所有内容。而是打电话
sudo !!
如果要从历史记录中的特定位置重新执行命令,也可以使用!
,例如
!3
在位置3重新执行该命令。请注意,这从顶部开始计算。因此,如果您要在历史记录中存储500个命令,!1
则将是“ 500个命令之前”。您也可以使用负数。例如
!-2
将重新执行倒数第二个命令。
您还可以重新执行以类似字符串的开头的最后一条命令
!apt-
这将重新执行以“ apt-”开头的最后一行。如果您希望最后一个命令在字符串出现在行中的任何位置,则可以使用类似
!?pt-ge
bash历史可以做的事情还有更多有趣的事情。只是为了给人一种广泛的印象,您可以从历史记录中专门访问命令的参数。所以
!-5:3:p
从最后一个命令将第三个参数打印到第五个参数。
编辑:关于下面的Rudie的评论,使用此bash历史扩展的标准设置确实可以直接执行。这最好是这样描述的:像调用!-3
被替换由外壳,从历史上的倒数第三个命令,然后执行您的输入(与更换)。因此,如果您键入!-3
并按,ENTER
而最后一个命令是ls ~
,则实际上与您ls ~
再次键入并按ENTER
“自己” 按相同。
如果您不想这样做,可以设置shell选项histverify
。对于设置和取消设置外壳程序选项,您可能需要阅读该shopt
命令。使用histverify
set时,类似的调用!-3
只会将历史记录中的替换内容写入命令行,而不会直接执行。为了让自己有所作为,请按一下关键点ENTER
-或选择不要这么做。
!
是非常危险的……我想!-4
在运行它之前先确切地知道做了什么。还是先显示给您?很酷的总结!
!-238
。记住您的倒数第二个,倒数第三个,也许是倒数第二个命令并不难;)与Linux一样(实际上,一般而言,对于计算而言),人们通常希望您知道自己在做什么。而且,如果您真的想要额外的安全网,那已经是一件容易的事shopt
了;)
就在这里。例如,如果要执行旁边带有数字1234的命令,请执行以下操作:
!1234
其他有用的东西:
如果要运行最后运行的命令,请执行以下操作:
!!
如果要运行最后一个 ls
命令,请执行以下操作:
!ls
如果你跑了 ls /some/long/path
,并且想cd
要这样做,请执行以下操作:
cd !$
了解更多信息:
使用组合键Ctrl
- r
,您将可以使用关键字搜索bash历史记录。
快速bash键绑定参考:http : //ss64.com/bash/syntax-keyboard.html
如果您找到了命令的历史编号,并且想要再次执行它,请键入!
其后跟数字,例如!1234
,然后按Enter。这是历史扩展的一部分; 您可以在其上添加修改器。
如果要在运行命令之前对其进行编辑,请fc 1234
调用外部编辑器。
但是正如特里·王(Terry Wang)所述,在历史记录中查找命令通常比确定其历史记录编号更快,包括Ctrl+ R调用增量搜索(Enter在找到要执行的命令时按)或fc PREFIX
执行上一个命令。以PREFIX
。开头的命令。