清除history
history的历史命令保存在**~/.bash_history** 文件中。也可以直接情况本文件内容的方式清空全部历史记录。
下面是更方便的一些操作。
清除全部记录
history -c
本命令只能清除内存中的历史记录,只有在登出的时候才会改变.bash_history文件。
可以执行命令“history -w”立即更新这个文件。
删除某一行
history -d <line number>.
让history记录操作时间
Linux下的History是使用频率较高的命令之后,可以回顾自己的操作,也可以快速取出一下前面操作过的命令。不过,默认设置没有记录操作的时间戳,下面是记录操作时间的办法。
设置办法
下面的内容设置到~/.bashrc文件仅对当前用户有效,写入到/etc/profile对所有用户有效
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> ~/.bashrc && source ~/.bashrc
注意:本方法必须在服务器刚刚新安装好时候,就设置这个参数。
如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录只能显示启动显示时间的时间。
时间参数解析
HISTTIMEFORMAT的参数有%F,%T,还有其它的参数可以用。
- %F:按照‘YYYY-M-D’ 显示日期
- %T:按照‘HH:MM:SS’ 显示时间
- %Y:4位数的年份;
- %m:2位数的月份数;
- %d:2位数的一个月中的日期数;
- %H:2位数的小时数(24小时制);
- %M:2位数的分钟数;
- %S:2位数的秒数
下面是例子,可以看到,以前的历史记录的时间都是一样的,是启动记录时间的那个时间。
增加历史记录的容纳件数
10:09 mark@marklinux ~$ echo $HISTFILESIZE
1000
10:19 mark@marklinux ~$ echo $HISTSIZE
1000
环境变量$HISTFILESIZE(文件容纳件数)默认值是1000件,$HISTSIZE(内存容纳件数)默认值是1000件
export $HISTFILESIZE=5000
export $HISTSIZE=2000
建议把这个设置写入~/.bashrc配置文件。
只显示最近n条记录
history n
history 5
输出例子
10:03 mark@marklinux ~$ history 3
697 2020-02-25 09-40-45 history |grep -i sqlite3
698 2020-02-25 09-59-13 history 5
699 2020-02-25 10-03-24 history 3
再次执行最后一个命令
!!可以再次执行最后一个命令
!!
输出例子
10:04 mark@marklinux ~$ ls
gosrc nohup.out
10:04 mark@marklinux ~$ !!
ls
gosrc nohup.out
再次执行history中的某行命令
!n
输出例子
10:08 mark@marklinux ~$ history 5
701 2020-02-25 10-04-35 ls
702 2020-02-25 10-07-52 date
703 2020-02-25 10-08-01 ls
704 2020-02-25 10-08-32 nano ~/.bashrc
705 2020-02-25 10-08-51 history 5
10:08 mark@marklinux ~$ !702
date
Tue Feb 25 10:09:07 CST 2020
其它常用操作
#强制写入~/.bash_history 。session超时的时候有用。
history -w