概述讨论shell命令查询以前的事件

运维 系统运维
和标准shell命令行扩展特性一样,键入历史事件的部分字符串,然后键入Esc,再键入Tab键,与刚才键入的字符串相匹配的历史事件将自动扩展并回显到命令行处。

学习shell命令行时,你可能会遇到执行问题,这里将介绍执shell命令问题的解决方法,在这里拿出来和大家分享一下。利用history命令能够查询以前的事件,并可把它们显示到shell命令行上执行这一事件。最简便的方法就是利用上下箭头键,把先前的事件逐次显示到命令行。这个操作不需要运行history命令就可以执行。按动一下上箭头键,那么上一次执行的一个事件就将出现在命令行上,再按一下,上一次的前一事件又会出现在命令行上;按动一下下箭头键,将会使当前事件的下一事件出现在命令行上。

Bash也可以通过键入Esc、Tab键来完成对历史事件的字符扩展。和标准shell命令行扩展特性一样,键入历史事件的部分字符串,然后键入Esc,再键入Tab键,与刚才键入的字符串相匹配的历史事件将自动扩展并回显到命令行处。如果不止一个事件与输入的字符串相匹配,就会听到一声响铃,继续键入字符或字符串,shell命令将会唯一确定用户所要键入的历史事件。

还有一个查询和执行历史事件的命令——!shell命令。在!命令后键入与历史事件相关联的字符,这个关联字符可以是历史事件的历史事件号,也可以是该事件的前几个字符。在下面的例子中,查询到历史事件号为3的事件,然后又用其开头的几个字符去匹配,也查询到该shell命令。
$ !3 mv mydata reports
$ !mv mv mydata reports

也可以用一个偏移量(相对于历史事件列表中***一个事件)来查询历史事件。负的偏移量将从历史事件列表表尾向前偏移。在下面的例子中,历史事件号为2的事件“vi mydata”就是用一个负的偏移量查询到的。必须注意的是,这个偏移量是相对于历史事件列表中的***一个事件的。在本例中,历史事件列表中***一个事件是事件5,历史事件列表中***个事件为1。从历史事件号为5的事件,往前偏移4,即是历史事件号为2的事件。
$ !-4 vi mydata

如果键入!!,则系统默认为上一事件。下面的例子中,用户在shell命行上键入!!命令,系统将执行上一事件:“ls”命令。
$ !! ls mydata today reports

shell命令行也可以用“模式”来搜索一个历史事件。搜索的“模式”必须用符号“?”括起来。下例是用“模式”“?myd?”来搜索历史事件号为3的历史事件“vi mydata”。 $ !?myd? vi mydata

【编辑推荐】

  1. 简要介绍Linux shell命令的收集编程语言
  2. Linux脚本Shell命令之葵花宝典
  3. shell命令入门四步骤基础必备
  4. 实战Windows7系统的Powershell命令
  5. Linux系统下查看文件调用情况Shell命令
责任编辑:佚名 来源: CSDN
相关推荐

2009-12-25 17:47:10

Linux tar

2009-12-30 17:31:48

2010-09-25 16:47:51

SQL查询

2009-11-18 13:46:11

PHP命令行

2009-12-18 09:54:10

Linux Shell

2010-06-23 11:24:23

Linux Bash命

2010-09-09 16:26:51

SQL循环For

2010-03-02 09:14:00

Linux创建用户命令

2010-09-16 09:37:21

JavaScript事

2010-06-17 10:43:21

SQL Server

2009-09-10 16:28:17

LINQ查询

2009-12-29 14:36:29

Ubuntu cron

2010-05-28 13:37:50

MySQL简单命令

2009-12-18 10:09:38

2009-08-12 18:20:39

C#事件驱动程序

2009-09-17 16:46:34

Linq to sql

2016-12-02 14:33:02

2009-12-31 15:52:21

Ubuntu命令

2023-11-22 12:42:19

CQRS事件溯源

2013-06-20 14:29:49

点赞
收藏

51CTO技术栈公众号