Home  >  Article  >  Operation and Maintenance  >  How to let the history command display date and time in Linux

How to let the history command display date and time in Linux

小云云
小云云Original
2018-01-19 09:51:293723browse

The history command stores all commands executed by bash on the terminal into the .bash_history file to help us review the commands previously executed by the user. This article mainly introduces the method of letting the history command display the date and time. Friends who need it can refer to it. I hope it can help everyone.

By default, the history command directly displays the commands executed by the user without outputting the date and time when the command was run, even if the history command records this time.

When you run the history command, it will check an environment variable called HISTTIMEFORMAT. This environment variable specifies how to format the output of the time recorded in the history command.

If the value is null or not set at all, it will be the same as most systems display by default, and the date and time will not be displayed.

HISTTIMEFORMAT Use strftime to format display times (strftime - Converts dates and times to strings). The history command outputs the date and time to help you track down the problem more easily.

  • %T: Replaced with time (%H:%M:%S).

  • %F : Equivalent to %Y-%m-%d (ISO 8601:2000 standard date format).

The following is the default output of the history command.


# history
 yum install -y mysql-server mysql-client
 service mysqld start
 sysdig proc.name=sshd
 sysdig -c topprocs_net
 sysdig proc.name=sshd
 sysdig proc.name=sshd | more
 sysdig fd.name=/var/log/auth.log | more
 sysdig fd.name=/var/log/mysqld.log
 sysdig -cl
 sysdig -i httplog
 sysdig -i proc_exec_time
 sysdig -i topprocs_cpu
 sysdig -c topprocs_cpu
 sysdig -c tracers_2_statsd
 sysdig -c topfiles_bytes
 sysdig -c topprocs_cpu
 sysdig -c topprocs_cpu "fd.name contains sshd"
 sysdig -c topprocs_cpu "proc.name contains sshd"
 csysdig
 sysdig -c topprocs_cpu
 rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
 curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
 yum install -y epel-release
 yum update
 yum makecache
 yum -y install kernel-devel-$(uname -r)
 yum -y install sysdig
 sysdig
 yum install httpd mysql
 service httpd start

There are three different ways to set environment variables based on needs.

  • Temporarily set the environment variables of the current user

  • Permanently set the environment variables of the current/other users

  • Permanently set environment variables for all users

Note: Don’t forget to add a space before the last single quote, otherwise the output will be very confusing.

Method 1:

Run the following command to temporarily set the HISTTIMEFORMAT variable for the current user. This will take effect until the next reboot.


# export HISTTIMEFORMAT='%F %T '

Method 2:

Add the HISTTIMEFORMAT variable to the .bashrc or .bash_profile file to make it permanent.


# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc

or


# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bash_profile

Run the following command to make the changes in the file take effect.


#source~/.bashrc

or


#source~/.bash_profile

Method 3:

Change HISTTIMEFORMAT Add the variable to the /etc/profile file to make it permanent for all users.


# echo 'HISTTIMEFORMAT="%F %T "' >> /etc/profile

Run the following command to make the changes in the file take effect.


#source/etc/profile

The output result is:


# history
 2017-08-16 15:30:15 yum install -y mysql-server mysql-client
 2017-08-16 15:30:15 service mysqld start
 2017-08-16 15:30:15 sysdig proc.name=sshd
 2017-08-16 15:30:15 sysdig -c topprocs_net
 2017-08-16 15:30:15 sysdig proc.name=sshd
 2017-08-16 15:30:15 sysdig proc.name=sshd | more
 2017-08-16 15:30:15 sysdig fd.name=/var/log/auth.log | more
 2017-08-16 15:30:15 sysdig fd.name=/var/log/mysqld.log
 2017-08-16 15:30:15 sysdig -cl
 2017-08-16 15:30:15 sysdig -i httplog
 2017-08-16 15:30:15 sysdig -i proc_exec_time
 2017-08-16 15:30:15 sysdig -i topprocs_cpu
 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 2017-08-16 15:30:15 sysdig -c tracers_2_statsd
 2017-08-16 15:30:15 sysdig -c topfiles_bytes
 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 2017-08-16 15:30:15 sysdig -c topprocs_cpu "fd.name contains sshd"
 2017-08-16 15:30:15 sysdig -c topprocs_cpu "proc.name contains sshd"
 2017-08-16 15:30:15 csysdig
 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 2017-08-16 15:30:15 rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
 2017-08-16 15:30:15 curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
 2017-08-16 15:30:15 yum install -y epel-release
 2017-08-16 15:30:15 yum update
 2017-08-16 15:30:15 yum makecache
 2017-08-16 15:30:15 yum -y install kernel-devel-$(uname -r)
 2017-08-16 15:30:15 yum -y install sysdig
 2017-08-16 15:30:15 sysdig
 2017-08-16 15:30:15 yum install httpd mysql
 2017-08-16 15:30:15 service httpd start

Related recommendations:

How to Vue-cli is transformed into a history mode that supports multiple pages

Several methods of history

Detailed explanation of the History mode in HTML5

The above is the detailed content of How to let the history command display date and time in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn