Home  >  Article  >  System Tutorial  >  Detailed analysis of how to display date and time in the history command

Detailed analysis of how to display date and time in the history command

王林
王林forward
2024-01-12 16:24:17934browse

We are all familiar with the history command. It 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.

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
 1 yum install -y mysql-server mysql-client
 2 service mysqld start
 3 sysdig proc.name=sshd
 4 sysdig -c topprocs_net
 5 sysdig proc.name=sshd
 6 sysdig proc.name=sshd | more
 7 sysdig fd.name=/var/log/auth.log | more
 8 sysdig fd.name=/var/log/mysqld.log
 9 sysdig -cl
 10 sysdig -i httplog
 11 sysdig -i proc_exec_time
 12 sysdig -i topprocs_cpu
 13 sysdig -c topprocs_cpu
 14 sysdig -c tracers_2_statsd
 15 sysdig -c topfiles_bytes
 16 sysdig -c topprocs_cpu
 17 sysdig -c topprocs_cpu "fd.name contains sshd"
 18 sysdig -c topprocs_cpu "proc.name contains sshd"
 19 csysdig
 20 sysdig -c topprocs_cpu
 21 rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
 22 curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
 23 yum install -y epel-release
 24 yum update
 25 yum makecache
 26 yum -y install kernel-devel-$(uname -r)
 27 yum -y install sysdig
 28 sysdig
 29 yum install httpd mysql
 30 service httpd start

Depending on your needs, there are three different ways to set environment variables.

·Temporarily set the current user’s environment variables
·Permanently set environment variables for 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
或
# echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bash_profile

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

# source ~/.bashrc
或
# source ~/.bash_profile

Method 3:

Add the HISTTIMEFORMAT 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
 1 2017-08-16 15:30:15 yum install -y mysql-server mysql-client
 2 2017-08-16 15:30:15 service mysqld start
 3 2017-08-16 15:30:15 sysdig proc.name=sshd
 4 2017-08-16 15:30:15 sysdig -c topprocs_net
 5 2017-08-16 15:30:15 sysdig proc.name=sshd
 6 2017-08-16 15:30:15 sysdig proc.name=sshd | more
 7 2017-08-16 15:30:15 sysdig fd.name=/var/log/auth.log | more
 8 2017-08-16 15:30:15 sysdig fd.name=/var/log/mysqld.log
 9 2017-08-16 15:30:15 sysdig -cl
 10 2017-08-16 15:30:15 sysdig -i httplog
 11 2017-08-16 15:30:15 sysdig -i proc_exec_time
 12 2017-08-16 15:30:15 sysdig -i topprocs_cpu
 13 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 14 2017-08-16 15:30:15 sysdig -c tracers_2_statsd
 15 2017-08-16 15:30:15 sysdig -c topfiles_bytes
 16 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 17 2017-08-16 15:30:15 sysdig -c topprocs_cpu "fd.name contains sshd"
 18 2017-08-16 15:30:15 sysdig -c topprocs_cpu "proc.name contains sshd"
 19 2017-08-16 15:30:15 csysdig
 20 2017-08-16 15:30:15 sysdig -c topprocs_cpu
 21 2017-08-16 15:30:15 rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
 22 2017-08-16 15:30:15 curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
 23 2017-08-16 15:30:15 yum install -y epel-release
 24 2017-08-16 15:30:15 yum update
 25 2017-08-16 15:30:15 yum makecache
 26 2017-08-16 15:30:15 yum -y install kernel-devel-$(uname -r)
 27 2017-08-16 15:30:15 yum -y install sysdig
 28 2017-08-16 15:30:15 sysdig
 29 2017-08-16 15:30:15 yum install httpd mysql
 30 2017-08-16 15:30:15 service httpd start

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

Statement:
This article is reproduced at:jb51.net. If there is any infringement, please contact admin@php.cn delete