Clear Terminal History in Linux; How do I clear bash history? How can I remove command line history or delete typed commands from the terminal? Is it possible to search and view terminal history? These are common questions asked by new Linux users.
In Linux, by default, up to the last 500 command lines a user types in the terminal window are saved into a hidden bash .bash_history file located in the user's home directory. This command history allows you to easily retrieve previously used commands by pressing the up or down arrow keys, which is very convenient for reusing commands or referencing earlier work.
However, there are situations where you may want to clear this history, such as for privacy or security reasons, or simply to declutter. In this article, we'll cover how to view, search, and clear your terminal history, which is commonly referred to as bash command history. This can also apply to other shells, such as zsh, but the instructions are specific to bash, which is the default shell in most Linux distributions.
How to View Terminal History
To view terminal history of all bash commands typed in the terminal for the currently logged in user, follow these steps:
- First, log in to the user account whose history you want to view.
- Press Ctrl + Alt + T to open a terminal window.
- Type the following command and press Enter:
history
This will display a list of all previously typed commands, each preceded by a number indicating its position in the history file. You can also search through this history using Ctrl + R, which opens a reverse search through the history buffer.
If you are working as a root user, you can switch to root using sudo su
and repeat the steps above to view the root user's command history.
Steps to Clear Terminal History in Linux
Clearing the terminal history or bash history in Linux is easy, and the following steps outline how to do it. Note that you'll need to repeat these steps for each user if you want to clear history for multiple accounts.
- Log in with the user account whose terminal history you want to clear.
- Open a terminal window with Ctrl + Alt + T.
- Type the following command and press Enter:
history -cw
This command clears the current session's history in memory and the .bash_history file. If you log out and log back in, the previous commands should no longer be accessible.
If necessary, repeat the process for other user accounts to ensure their history is cleared as well.
Alternate Method to Clear Bash History
Sometimes, even after clearing the terminal history, it may seem like the history returns after you log back in. This could be because the shell writes the history back to the .bash_history file when logging out. The following method clears the file itself, ensuring that no history is saved between sessions.
- Open a terminal window using Ctrl + Alt + T.
- Type the following command and press Enter:
cat /dev/null > ~/.bash_history && history -cw
- Repeat this process for each user account to ensure that all typed command line histories are cleared.
The command above replaces the contents of the .bash_history file with nothing (i.e., an empty file) and clears the current session history in memory. This method is more thorough and ensures that history does not persist across sessions.
Disable Bash Command History in Linux
In Linux, if you want to prevent bash from saving any command history in the future, you can disable history logging entirely by adding the following line to the bottom of your ~/.bashrc file:
unset HISTFILE
This will ensure that the .bash_history file is not created or updated in future sessions. However, you should carefully consider whether you need this feature, as command history is often very useful for recalling previous commands and improving productivity.
Additional Considerations
- If you use other shells like zsh, the history file may be .zsh_history, and the process will be similar but with shell specific commands.
- Clearing bash history can be crucial when working on shared systems or when using sensitive commands that you don't want stored. Preventing users from being able to view terminal history of previously typed commands.
If you found this segment useful, you might also want to learn how to mount an NTFS partition in Linux.