您的位置:首页 > 运维架构 > Shell

history介绍及bash命令快速调用

2015-04-25 12:42 232 查看
在日常工作中,能够快速并准确的使用命令是必不可少的,下面为大家介绍一下其中的小技巧。

一、查找命令历史——history

使用history能够快速的找到之前输入过的命令。

# history




大家可以看到,你输入过的命令会在列表中显现出来。前面是命令编号,有什么用?请看下方详解。

额外选项:

# history N      显示最近的N条命令,例如history 5
# history -d N   删除第N条命令,这个N就是前面的编号,例如history -d 990
# history -c     清空命令历史
# history -a     将当前会话中的命令历史写入指定文件

指定文件是什么?就是历史记录的环境变量信息,它通常会保存在用户家目录下的.bash_history。

# echo $HISTFILE        使用此命令查看环境变量




# echo $HISTFILESIZE    查看最大保存数目




二、快速调用bash命令

当我们敲完一条命令后,系统就会将其记录下来,以备查看或快速调用。那么如何实现bash命令的快速使用?请看下方。

1.执行命令历史中的第N条命令

# !N

例如:上面截图中显示,989条命令为ls,当我们使用!989,系统就会再次执行一次ls命令。

2.执行上一条命令

# !!

例如:我执行uptime命令,之后马上使用!!,系统就会告知你上一条命令使用的是什么,并执行取回结果的。





3.执行命令历史中最近一次以字符串(string)开头的命令

# !string

例如:我在家目录下新建文件夹mkdir test,然后删除之rm -rf test。



现在看,家目录下没有test目录了。我执行!mk,大家可以看,刚才创建目录的命令又被执行了,再用!rm,目录又被删除了。但是注意,这样虽然很方便,但是由于有些命令开头很相似,因此很容易造成误操作,安全的办法还是看下history吧!

# !mk




# !rm




  4.调用上一条命令的最后一个参数—— !$
我首先ls /var/log/目录,此时/var/log/就是ls命令的参数。




下面我想查看此目录下的messages文件,就可以这么写(为防止刷屏,使用了less)。




大家可以看到,命令会自动替换!$为/var/log/,是不是很方便!同样的,按下ESC,放开再按.也可以调用上个命令的参数,请大家自行尝试下。
如果上述描述有任何不对或者错误的地方,还请大家为我指认,感谢大家观看,谢谢!  QQ:82800452
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: