Shell history命令 图片看不了?点击切换HTTP 返回上层
[root@localhost ~]# history [选项] [历史命令保存文件]
选项:- -c:清空历史命令;
- -w:把缓存中的历史命令写入历史命令保存文件中。如果不手工指定历史命令保存文件,则放入默认历史命令保存文件 ~/.bash_history 中;
如果 history 命令直接回车,则用于查询系统中的历史命令,命令如下:
[root@localhost ~]# history
…省略部分输出…
421 chmod 755 hello.sh
422/root/sh/hello.sh
423 ./hello.sh
424 bash hello.sh
425 history
[root@localhost ~]#vi /etc/profile
…省略部分输出…
HISTSIZE=1000
…省略部分输出…
[root@localhost ~]#vi /etc/profile
…省略部分输出…
HISTSIZE=10000
…省略部分输出…
如果某个用户的历史命令总了历史命令保存条数,那么新命令会变成最后一条命令,而最早的命令则被删除。假设系统保存 1000 条历史命令,而我已经保存了 1000 条历史命令,那么我新输入的命令会被保存成第 1000 条命令,而最早的第一条命令会被删除。
还要注意一下,我们使用 history 命令查看的历史命令和 ~/.bash_history 文件中保存的历史命令是不同的。那是因为当前登录操作的命令并没有直接写入 ~/.bash_history 文件中,而是保存在缓存当中的,需要等当前用户注销之后,缓存中的命令才会写入 ~/.bash_history 文件中。
如果我们需要把内存中的命令直接写入 ~/.bash_history 文件中,而不等用户注销时再写入,就需要使用"-w"选项。命令如下:
[root@localhost ~]# history -w
#把缓存中的历史命令直接写入~/.bash_history
如果需要清空历史命令,则只需要执行如下命令:
[root@localhost ~]# history -c
#清空历史命令
历史命令的调用
如果想要使用原先的历史命令,则有这样几种方法:- 使用上、下箭头调用以前的历史命令。
- 使用"!n"重复执行第 n 条历史命令。
[root@localhost ~]# history
…省略部分输出…
421 chmod 755 hello.sh
422/root/sh/hello.sh
423 ./hello.sh
424 bash hello.sh
425 history
[root@localhost sh]# !424
#重复执行第424条命令
- 使用"!!"重复执行上一条命令。
[root@localhost sh]#!!
#如果接着上一条命令,则会把424命令再执行一遍
- 使用"!字符串"重复执行最后一条以该字符串开头的命令。
[root@localhost sh]#!bash
#重复执行最后一条以bash开头的命令,也就是第424条命令bash hello.sh
- 使用"!$"重复上一条命令的最后一个参数。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
#查看网卡配置文件内容
[root@localhost ~]# vi !$
# "!$"代表上一条命令的最后一个参数,也就是/etc/sysconfig/network-scripts/ifcfg-eth0