history命令详解

命令:history

命令说明:用于显示历史记录和执行过的指令命令, history命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。

exort HISTSIZE=5 #设置只记录5条历史命令

如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的“**.bash_history”**文件,该文件记录了用户所使用的命令和历史信息。

命令用法:直接输入history查看

参数参数说明备注
n显示历史记录中最近的N个记录,例如 history 5
-c清空当前历史命令
-a将历史命令缓冲区中命令写入历史命令文件中
-r将历史命令文件中的命令读入当前历史命令缓冲区
-w将当前历史命令缓冲区命令写入历史命令文件中
-d删除历史记录中第offset个命令
-n读取指定文件
举例1:不加参数,查看历史命令
[root@web03 ~]# history 
  1 ping baidu.com
  2 ls
  3 df -h
  4 systemctl get-default
举例2:history后直接跟数字,查看历史命令最后5条
[root@web03 ~]# history 5
举例3:!number,执行指定的第几条历史命令
[root@web03 ~]# !8  #执行历史命令第8条
df -h
Filesystem        Size Used Avail Use% Mounted on
/dev/mapper/centos-root  14G 4.0G  11G 29% /
devtmpfs         977M   0 977M  0% /dev
举例3:!!,执行上一条历史命令
[root@web03 ~]# !!
df -h
Filesystem        Size Used Avail Use% Mounted on
/dev/mapper/centos-root  14G 4.0G  11G 29% /
devtmpfs         977M   0 977M  0% /dev
举例4:-d,删除指定第几条记录
[root@web03 ~]# history -d 5

显示执行历史记录时间:

1、默认情况下,history并不记录命令的执行时间,分析起来很困难。我们可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP

2、把上面的 export HISTTIMEFORMAT="%F %T " 命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。添加完成后,执行source .bashrc让其生效。仅针对当前账号有效。

[root@web03 ~]# history 
  1 2019-04-04 13:50:09 ping baidu.com
  2 2019-04-04 13:50:09 ls
  3 2019-04-04 13:50:09 df -h
  4 2019-04-04 13:50:09 systemctl get-default

3、其实HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T ",%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。

4、用Ctrl+R搜索历史命令;当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。如搜索”date”,则显示历史的命令中含有”date”的命令 date “+今天是:%F,%A,时间是:%T.准备吃饭去”。按回车,就可以重新执行这条命令了,而按左箭头键或右箭头键则可以直接修改,改完之后按回车执行,非常方便!

【注:在命令行提示符下按下Ctrl+R,终端将显示如下提示reverse-i-search】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值