history
Command in Linux
Summary
The history
command in Linux displays a list of previously executed commands, allowing users to review, reuse, and manage their command-line interactions.
Introduction
The history
command is a powerful tool for Linux users to track and manage their command-line activity. It allows you to view a list of commands you've executed, recall them for reuse, and even clear your command history for privacy. By default, the shell stores a certain number of commands in a history file (usually .bash_history
in your home directory). The history
command provides a way to interact with this file.
Use case and Examples
Displaying Command History
This command displays a numbered list of previously executed commands from the history file.Displaying Last N Commands
This will display the last 10 commands from the history list. Replace10
with any number to view that many recent commands. Executing a Command from History
This executes the command numbered123
in the history list. Replace 123
with the desired command number. Executing a Command Containing a Specific String
This executes the most recent command in the history that contains the specifiedstring
. For example, !?apt update?
will execute the last command containing "apt update". Clearing Command History
This clears the current shell's history list. Note that the.bash_history
file on disk will not be updated until the shell exits or history -w
is used. Appending the Current History to History File
This appends the current session's history to the.bash_history
file. Useful for ensuring the file is up-to-date before logging out. Commonly used flags
Flag | Description | Example |
---|---|---|
-c | Clears the history list. | history -c (clears the history) |
-d offset | Deletes the history entry at position OFFSET. | history -d 5 (deletes the 5th entry) |
-a | Append the new history lines to the history file. | history -a (appends to the file) |
-n | Read all history lines not already read from the history file. | history -n (reads new lines from file) |
-r | Read the contents of the history file and use them as the current history list. | history -r (reads the history file) |
-w | Write the current history to the history file. | history -w (writes the history to file) |
-p arg1 arg2 ... | Perform history substitution on the ARGs and display the result, without storing them in the history list. | history -p 'echo hello world' (shows what echo hello world would execute as.) |
-s arg | Add the ARGs to the end of the history list as a single entry. | history -s 'ls -l' (adds ls -l as the last history entry) |