玩转History命令

清除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

参考:17 Bash History Command Examples In Linux

发布了74 篇原创文章 · 获赞 27 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/sitebus/article/details/104490498