Linux中history命令显示时间

项目场景:

编写Linux shell自动判卷脚本过程中,使用到history命令时,如何显示命令执行时间问题的解决。


问题描述

Linux中的history命令默认只会显示两列,序号和命令,无法显示时间,如下所示:

[root@yjh ~]# history
1  fdisk -l
2  fdisk /dev/sda
3  init 0
4  fdisk
5  startx
6  ifconfig
7  ifconfig eth0 192.168.111.2
8  ifconfig
9  ifconfig eth0 192.168.111.2
10  ifconfig eth1 192.168.111.

原因分析:

history命令的执行结果是系统默认的两列结果,如需显示更多信息,需配置HISTTIMEFORMAT环境变量


解决方案:

  1. 仅使本次登录有效,直接执行如下命令:

    export HISTTIMEFORMAT="%F %T "
    

    执行结果如下,会看到已经出现了命令执行的时间

    [root@yjh ~]# history
    1  2022-06-01 22:28:30 fdisk -l
    2  2022-06-01 22:28:30 fdisk /dev/sda
    3  2022-06-01 22:28:30 init 0
    4  2022-06-01 22:28:30 fdisk
    5  2022-06-01 22:28:30 startx
    6  2022-06-01 22:28:30 ifconfig
    7  2022-06-01 22:28:30 ifconfig eth0 192.168.111.2
    8  2022-06-01 22:28:30 ifconfig
    9  2022-06-01 22:28:30 ifconfig eth0 192.168.111.2
    10  2022-06-01 22:28:30 ifconfig eth1 192.168.111.2
    
  2. 若要使每次都生效,则需要设置系统环境变量,首先打开/etc/profile文件

    vim /etc/profile
    

    在文件末尾加上该条命令

    export HISTTIMEFORMAT="%F %T "
    

    如下所示:
    Linux中history命令显示时间_第1张图片
    保存并退出后,执行source /etc/profile命令或重启后,即可永久生效,每次使用history命令即可显示命令执行时间,

你可能感兴趣的:(linux,bash,centos)