history命令
简介
基本
在Linux中,history命令是用于显示历史执行命令以及读取命令历史文件中的历史执行的命令到内存中,或者从内存中把执行命令的历史写入到保存历史执行命令的文件中的内部命令。
语法:history (选项) (参数)
选项:-c: 清空命令历史
-d n: 删除历史中指定的第n个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史储存文件 .bash_history
储存命令历史的文件在
~/bash_history
当我们登陆shell的时候,系统会将保存在文件中的命令历史读取到内存中,所以我们直接键入 history
便可以查询命令历史。
[root@centos7 ~]# history 查看内存中命令历史记录
1 history
2 reboot
3 init 3
4 history
5 ls
6 cd
7 history
[root@centos7 ~]#
直接键入history
查询当前内存中已存在的历史,那么这个时候.bash_history
文件中的历史也是这样的吗?
[root@centos7 ~]# cat .bash_history 查看文件中命令历史记录
history
reboot
[root@centos7 ~]#
很明显,在.bash_history
中储存的命令历史截止到了reboot
重启命令。
当计算机正常执行命令关闭、重启或者用户正常退出的时候系统便会将内存中的命令历史写入到.bash_history
中去,当用户重新登陆后又会将之前储存在.bash_history
文件中的命令历史读取到内存中。
[root@centos7 ~]# exit
logout
[root@centos7 ~]# cat .bash_history
history
reboot
init 3
history
ls
cd
history
cat .bash_history
exit
重新登陆后便可以发现.bash_history
文件中的命令历史已经更新了,截止到exit
选项
history -c
history -c
命令用于清空命令历史记录。注意:这里只是清理内存中的历史记录在.bash_history
中的命令记录不会被该命令清除,我将在下面做实例演示。
[root@centos7 ~]# history
1 reboot
2 init 3
3 history
4 ls
5 cd
6 history
7 cat .bash_history
8 exit
9 cat .bash_history
10 history
11 history -d 1
12 history
[root@centos7 ~]#
键入history
后当前内存中的命令历史如上所示。
[root@centos7 ~]# history -c 清除内存中的命令历史记录
[root@centos7 ~]# history 查看内存中的命令历史记录
1 history
[root@centos7 ~]#
当键入history -c
命令后再次键入history
便可发现内存中的命令历史已经清空,当前命令历史只剩下history -c
后的一条命令,那么现在.bash_history
中的命令历史还在吗?
[root