Overview of history
Every time a user enters a command in the terminal, that command is recorded in a history file (usually `~/.bash_history` or `~/.zsh_history`). The `history` command reads the contents of this file and displays it on the screen, and the history is preserved even after the shell session ends.
Main Roles of history
The history command is primarily used for the following purposes:
Key Use Cases
- Re-executing commands: You can easily re-execute long commands used previously without needing to retype them.
- Tracking tasks: It helps to check what tasks were performed in the past and understand the workflow.
- Improving productivity: Quickly find frequently used commands, saving input time.
- Reference for script writing: Utilize combinations of commands that were successfully executed in the past for script writing.
Environment Variables and history
The history functionality is influenced by several environment variables:
Key Related Environment Variables
HISTSIZE: The maximum number of command history entries to be stored in memory. It is retained during the current shell session.HISTFILESIZE: The maximum number of command history entries to be stored in the history file (e.g.,~/.bash_history). It is preserved between shell sessions.HISTFILE: Specifies the path of the file where command history is stored. The default is~/.bash_history.HISTCONTROL: Controls the way history records are maintained. (e.g.,ignoredups- ignore duplicate commands,ignorespace- ignore commands that start with a space)
Key history Command Options
The `history` command provides various options necessary to query, modify, and manage the history list.
1. Viewing and Outputting History
2. Modifying and Re-executing History
Generated command:
Try combining the commands.
Description:
`history` Executes the command.
Combine the above options to virtually execute commands with AI.
Usage Examples
Learn how to effectively query and reuse command history through various examples of the `history` command.
View the Last 20 Commands
history 20
Outputs a list of the 20 most recently executed commands along with their numbers.
Search for Specific String in Command History
history | grep docker
Use the `grep` command to find commands containing 'docker' in the `history` history.
Re-execute Previous ls Command
!ls
Finds and re-executes the most recently executed command starting with `ls`.
Reuse Last Argument of Last Command
cat /var/log/syslog
less !$
Useful when you want to reopen `/var/log/syslog` with the `less` command after executing `cat /var/log/syslog`.
Immediately Save Current Shell History to File
history -w
Immediately save all commands executed in the current session to the `~/.bash_history` file before closing the shell.
Delete Specific History Entry Number
history -d 125
Deletes the command with number 125 from history when checked using the `history` command. (Note: Once deleted, it cannot be recovered)