Shell history详解:查看历史命令
[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
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频