Skip to main content

Module 7: System Information & Monitoring

Lesson 67: history Command

In this lesson, you'll learn how to use the history command to view, search, and manage your command history in Linux.

We use the history command is frequently used in our daily routine jobs to check the command history or get information about commands executed by the user.

It effectively extracts the command that was executed by users in the Bash shell. This may be useful for audit purposes or to find out what command was executed at what date and time.

By default, the date and timestamp won't be seen while executing the history command.

However, the Bash shell provides CLI tools for editing the user's command history.

Let's understand the working of history commands with the help of some examples.

history Command Syntax

$ history [OPTIONS]

history Command Options

Option Description
-c Clear/delete all entries from the bash history list
-d OFFSET Delete the history entry at the specified offset
-w Write the current history to the history file
-r Read the history file and append it to the current history
-n N Display only the last N entries from history

1. List Last/All Executed Commands

Executing a simple history command from the terminal will show you a complete list of the last executed commands with line numbers.

[ubuntu@TecMint ~]$ history
    1  PS1='\e[1;35m[\u@\h \w]$ \e[m '
    2  PS1="\e[0;32m[\u@\h \W]$ \e[m "
    3  PS1="\u@\h:\w [\j]$ "
    4  ping google.com
    5  echo $PS1
    6   tail -f /var/log/messages
    7  tail -f /var/log/messages
    8  exit
    9  clear
   10  history
   11  clear
   12  history

2. List All Commands with Date and Timestamp

How to find the date and timestamp against a command? The export command with the variable will display the history command with the corresponding timestamp when the command was executed.

[ubuntu@TecMint ~]$ export HISTTIMEFORMAT='%F %T  '
      1  2023-08-09 10:40:12   cat /etc/issue
      2  2023-08-09 10:40:12   clear
      3  2023-08-09 10:40:12   find /etc -name *.conf
      4  2023-08-09 10:40:12   clear
      5  2023-08-09 10:40:12   history
      6  2023-08-09 10:40:12   PS1='\e[1;35m[\u@\h \w]$ \e[m '
      7  2023-08-09 10:40:12   PS1="\e[0;32m[\u@\h \W]$ \e[m "
      8  2023-08-09 10:40:12   PS1="\u@\h:\w [\j]$ "
      9  2023-08-09 10:40:12   ping google.com
     10  2023-08-09 10:40:12   echo $PS1

Meaning of HISTTIMEFORMAT variables:

  • %F - Equivalent to %Y-%m-%d
  • %T - Replaced by the time (%H:%M:%S)
Pro TecMint Β· Root Plan
This Article is for Root Members
Join Root to read the full article and unlock everything

Full Access to Every Article, Course & Certification Track

Join thousands of Linux professionals who use Pro TecMint to advance their careers.

Ad-free access to all premium articles
All courses: Learn Linux, Bash, Golang, Ubuntu and more
RHCSA, RHCE, LFCS & LFCA certification prep
New courses added every month
Private Telegram community & priority support
Root Plan
$8/mo
or $59/year billed annually
Save $37 with annual plan
Start Reading This Article in the Next 60 Seconds
Join Root Plan β†’