我们都对history命令很熟悉。它将终端上bash执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令
默认情况下history命令直接显示用户执行的命令而不会输出运行命令时的日期和时间,即使history命令记录了这个时间。
运行history命令时,它会检查一个叫做HISTTIMEFORMAT的环境变量,这个环境变量指明了如何格式化输出history命令中记录的这个时间。
若该值为null或者根本没有设置,则它跟大多数系统默认显示的一样,不会显示日期和时间。
HISTTIMEFORMAT使用strftime来格式化显示时间( strftime - 将日期和时间转换为字符串)。history命令输出日期和时间能够帮你更容易地追踪问题。
%T : 替换为时间( %H:%M:%S )。
%F : 等同于 %Y-%m-%d (ISO 8601:2000 标准日期格式)
下面是 history 命令默认的输出
# history
1 vi /etc/sysconfig/network-scripts/ifcfg-ens192
2 service network restart
3 init 0
4 vi /etc/sysconfig/selinux
5 vi /etc/hosts
6 ifconfig
7 vi /etc/hosts
8 cat /etc/hosts
9 vi /etc/hostname
10 cat /etc/hostname
11 ifconfig
12 cat /etc/sysconfig/selinux
13 vi /etc/security/limits.conf
14 cat /etc/security/limits.conf
15 vi /etc/sysconfig/network-scripts/ifcfg-ens192
16 service network restart
17 ifconfig
根据需求,有三种不同的设置环境变量的方法。
1、临时设置当前用户的环境变量
2、永久设置当前/其他用户的环境变量
3、永久设置所有用户的环境变量
注意:不要忘了在最后那个单引号前加上空格,否则输出会很混乱的。
方法 1:
运行下面命令为为当前用户临时设置 HISTTIMEFORMAT 变量。这会一直生效到下次重启。
# export HISTTIMEFORMAT='%F %T '
方法 2:
将 HISTTIMEFORMAT 变量加到 .bashrc 或 .bash_profile 文件中,让它永久生效。
# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
或
# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bash_profile
运行下面命令来让文件中的修改生效。
#source~/.bashrc
或
#source~/.bash_profile
方法 3:
将 HISTTIMEFORMAT 变量加入 /etc/profile 文件中,让它对所有用户永久生效。
# echo 'HISTTIMEFORMAT="%F %T "' >> /etc/profile
或
vi /etc/profile最后添加如下两行(我常用的也是此方式):
#Display date
export HISTTIMEFORMAT='%F %T '
或上面两个结合起来加上注释名一起追加到/etc/profiel文件中
echo "
#Display date
export HISTTIMEFORMAT='%F %T '" >> /etc/profile
运行下面命令来让文件中的修改生效。
#source/etc/profile
输出结果为:
#history
1 2019-12-30 08:55:18 cd ..
2 2019-12-30 08:55:18 ls
3 2019-12-30 08:55:18 cd ResServer-7702/
4 2019-12-30 08:55:18 ./bin/startup.sh
5 2019-12-30 08:55:18 tail -f logs/catalina.out
6 2019-12-30 08:55:18 cd ..
7 2019-12-30 08:55:18 cd ResFrontServer-7700/
8 2019-12-30 08:55:18 ./bin/startup.sh
9 2019-12-30 08:55:18 tail -f logs/catalina.out
10 2019-12-30 08:55:18 df -h
11 2019-12-30 08:55:18 free -m
12 2019-12-30 08:55:18 echo 3 > /proc/sys/vm/drop_caches
13 2019-12-30 08:55:18 free -m
14 2019-12-30 08:55:18 cd /web/tomcat8.0-njmine-8080/
15 2019-12-30 08:55:18 ./bin/shutdown.sh
16 2019-12-30 08:55:18 ./bin/startup.sh
17 2019-12-30 08:55:18 ./bin/shutdown.sh
18 2019-12-30 08:55:18 ps -ef | grep 8080