Akshat is a software engineer, product designer and the co-founder of Scrutify. He's an experienced Linux professional and the senior editor of this blog. He...Read more
TL;DR
To clear Bash history, you can try these three methods:
- For real-time clearing Bash history, use the
history -c
command in the Terminal app. - To permanently clear Bash history, run
echo '' > ~/.bash_history
to clear the .bash_history file. Then, addunset HISTFILE
to the ~/.bashrc file to stop future history saving. - To completely disable Bash history, execute
set +o history
, followed byhistory -c
to erase previously saved history.
Furthermore, implement these three best practices to manage Bash history: set limits on HISTSIZE and HISTFILESIZE, customize HISTTIMEFORMAT timestamp, and automate clearing with cron jobs. To further enhance efficiency, use these quick tips: delete specific entries, exclude certain commands, control history data, clear a session, or encrypt history.
Clear Bash history effortlessly with the concise guide below. Along with that, you’ll also learn the three best practices and five quick tips for managing the Bash history.
Bash history logs enable quick command reuse, error checking, command recall, and task automation. By default, the commands are stored in the ~/.bash_history file in reverse-chronological order. However, this bash history data can reveal sensitive information such as passwords and other data, making it a potential security and privacy risk. So, you need to regularly clear Bash history to protect your sensitive information. In this article, I’ll provide a step-by-step guide, three best practices, and five quick tips to easily clear Bash history in Linux.
How to Clear Bash History in 3 Simple Ways
To clear Bash history, you can use either the real-time method or delete the Bash history permanently. Another solution is to disable the Bash history using the Terminal command line. For a better understanding, let’s have a look at each of these methods here:
1. Clear Bash History in Real-Time
Use this method to clear Bash history in real-time when you want to ensure that your command history is immediately removed as you execute commands. This can be beneficial in situations where you want to maintain privacy, prevent sensitive information from being stored, or start with a clean history for subsequent commands. Here are the steps to follow:
- First, view the Bash history by executing the
history
command in the Terminal app.


- Now, enter the command
history -c
in the Terminal app. This command clears the history buffer and removes all the commands from it.


- The next time you enter a command, it will be the first command in your Bash history. To verify this, run the
history
command.


2. Clear Bash History File Permanently
If you want to completely clear Bash history, you can do so by manually clearing the .bash_history file. This file keeps a record of all the commands you’ve entered. Just follow these steps to clear the Bash history file manually
- Head to the home directory and search for the .bash_history file.


- Once found, click the file to open and view the Bash history.


- Now, head to the Linux command prompt and execute the
echo "" > ~/.bash_history
command.


- This command overwrites the .bash_history file with a blank line, effectively deleting all the commands stored in it. You can check it by viewing the .bash_history file.


- To prevent Bash from saving history in the future, run the
nano ~/.bashrc
in the Terminal app.


- At the end of the file, add a new line at the end of the file and type
unset HISTFILE
on the new line.


- Then, press Ctrl + O to save and Ctrl + X to exit the nano editor.


- Type
source ~/.bashrc
and press Enter to reload the ~/.bashrc file. In some cases, you may need to restart the command prompt to apply the changes.


- Now, the Bash history will not store any future commands in the history file. However, you may need to run the
history -c
command to remove all previously saved or stored history.


3. Disable Bash History
Another way is to disable Bash history to prevent command recording and maintain privacy. To do this, you can use the set +o history
command. Here’s is the step-by-step guide to use this method:
- Execute the
history
command to view the saved history.


- Then, in the Terminal app, run the command
set +o history
in the command prompt to disable the Bash history for the current session.


- Now, any commands you enter will not be added to the history list. Just like in the following output, it did not save the
python3 --version
command in Bach’s history.


- But if you want to enable Bash history again, enter the
set -o history
command.


- Now, any commands you enter will be added to the Bash history list. As you may see, the commands executed after
set -o history
are saved in the Bash history.


Entirely disabling the Bash history may affect your productivity, as you will not be able to recall previous commands. So, it is recommended to clear your Bash history regularly instead of disabling it completely.
3 Best Practices To Manage Bash History
Managing your Bash history is important for maintaining the security, efficiency, and organization of your command line activities. Here are some best practices to consider:
1. Setting Bash History Limits
By default, Bash history stores up to 500 commands, allowing you to access and repeat previously executed commands easily. However, if you find that you require a larger or smaller command history size, you have the flexibility to adjust this limit according to your needs. To do so, add the following lines to your ~/.bashrc file:
HISTSIZE=1000
HISTFILESIZE=2000


These lines set the maximum number of commands that Bash history can store to 1000 in memory and 2000 in the .bash_history file. This limit prevents your history file from becoming too large, slowing down your Terminal’s performance.
2. Use Customization to Clear Bash History
By default, Bash history only shows the commands you entered without timestamps, but when you add HISTTIMEFORMAT="%d/%m/%y %T "
, it will display the timestamp of when each command was executed in the format of day/month/year hour:minute:second
.
While this line does not directly help with clearing Bash history, it can provide useful information for tracking and analyzing your command history. To customize your Bash history, add the following lines to your ~/.bashrc file:
HISTTIMEFORMAT="%d/%m/%y %T "


Save the file after making the changes, and the new timestamp format will take effect the next time you open a Bash shell. Basically, this line will change the timestamp format of your Bash history to the date and time format (%d/%m/%y %T
) that will help you to review your command history with timestamps displayed according to your chosen format.
Feel free to experiment with different format specifiers, such as %Y
for the four-digit year, %b
for the abbreviated month name, or %I:%M:%S %p
for a 12-hour clock format with AM/PM indication. You can customize the timestamp format to your liking, making it more meaningful and easier to interpret for your command history analysis or personal reference.
3. Automate Clear Bash History Process
To automate the process of clearing your Bash history, you can create a cron job that runs every day at midnight and overwrites the .bash_history file with a blank line. To set up the cron job, open your terminal and type crontab -e
to edit your user’s crontab file. Add the following line to the file, save and close it:
0 0 * * * echo "" > ~/.bash_history


The cron job will now run every day at midnight and clear Bash history. However, it is important to regularly review your Bash history for any suspicious or unauthorized activity and investigate any potential security breaches or incidents.
5 Quick Tips to Clear Bash History More Efficiently
With the help of these five handy tips and commands, you can effortlessly clear your Bash history, safeguarding your sensitive information and ensuring your privacy. Let’s have an in-depth look into each of them here:
- 🔍 Use the history -d command to delete specific entries: The
history -d
command allows you to delete specific entries from your history buffer. For example,history -d 100
will delete the 100th entry in your history buffer. - 🙈 Use HISTIGNORE to exclude specific commands from history: You can use the HISTIGNORE environment variable to exclude specific commands from being added to the history buffer. For example,
HISTIGNORE="ls:cd"
will exclude the ls and cd commands from being added to the history buffer. - 🔧 Use HISTCONTROL to control how Bash saves history: You can use the HISTCONTROL environment variable to control how Bash saves history. For example,
HISTCONTROL=ignorespace
will prevent any commands that start with a space from being added to the history buffer. - 🗑️ Clear history for a specific session with the kill 9: The
kill−9
command kills the current Bash session, clearing the history buffer for that session only. This can be useful if you want to clear the history for a specific session without affecting the overall history file. - 🔒 Encrypt your Bash history file for added security: If you want to keep a record of your commands but also want to protect them from prying eyes, you can encrypt your Bash history file using tools like gpg or OpenSSL. This ensures that even if someone gains access to your history file, they will not be able to read the contents without the encryption key.
Key Takeaways
In this guide, you’ve learned the top three methods to clear Bash history in Linux for improved security and privacy: real-time clearing, permanent deletion, and disabling Bash history. Additionally, you’ve discovered three best practices and five useful tips to more effectively clear Bash history in Linux.
For further insights on the Bash concepts and its operations, explore articles on using the echo command in Bash for enhanced code readability, utilizing bash set x for debugging code, and replacing strings in Bash with Linux command-line tools to enhance your coding presentation and unlock the full potential of Bash scripting.
Frequently Asked Questions
What is Bash history?
Bash history is a log file that stores a record of all commands entered in the command-line interface. By default, it is stored in the ~/.bash_history
file in the user’s home directory, listing commands in reverse chronological order with corresponding numbers.
This feature is particularly useful for recalling previously executed commands, especially those that were complex or that need to be repeated.
How does Bash history work?
Bash history works by storing commands in a buffer in memory, which is then flushed to a history file when the Terminal is closed. You can navigate their command history using shortcuts and commands, search through it using the history
command, and even customize it by creating aliases and functions. Bash history options can also be modified to suit individual preferences. However, it is important to note that the feature may not be enabled by default in all operating systems or Terminal emulators, requiring manual configuration.
Why is it important to clear the Bash history?
Clearing Bash history is important for security, privacy, legal, and performance reasons. Sharing a computer can allow others to view sensitive information about Bash’s history, and it may reveal personal information. Clearing the history regularly can help protect your privacy and prevent sensitive information from being used against you in legal proceedings. Additionally, a large history file can slow down terminal performance.
Does clearing Bash history affect my command-line productivity?
Regularly clearing your Bash history can prevent others from seeing your sensitive commands, such as passwords or API keys, if they gain access to your computer or account. It also removes clutter from your history, making it easier to find the commands you need. However, if you frequently use the command history to save time and increase efficiency, clearing it may slow you down as you have to type commands from scratch. In such cases, consider adjusting your history settings to limit the number of commands saved or using alternative tools such as shell aliases or functions to save frequently used commands.
How to view Bash history in Linux?
To view the Bash history in Linux, open the Terminal and enter the history
command. This command will display a list of all the previously executed commands, along with their corresponding command numbers. You can use these numbers to execute a specific command from the history list by entering !commandnumber
in the Terminal. For example, if you want to re-run command number 10
, execute !10
in the Terminal.
What are the common commands used in Bash History?
Commonly used commands include history
to show the entire command history, !
followed by a number to re-run a specific command, Ctrl + R to search for a command, and !!
to re-run the last command in history.
Additionally, you can use the up and down arrow keys to navigate through their command history, use the !!:p
command to print the last command without executing it, and use the history -c
command to clear their command history. By mastering these commands, users can become more efficient and effective in their use of the Bash shell.
How to recover bash history? Or is there a way for backup?
To recover lost or deleted Bash history or create a backup, you can follow these steps. First, check the location of your Bash history file, usually named .bash_history
, in your home directory. If the file is accidentally deleted or modified, attempt file recovery using backups or file recovery tools like extundelete
. If you have a backup of the Bash history file, restore it to its original location. Additionally, explore system backups or version control systems for previous versions of the file.
Akshat is a software engineer, product designer and the co-founder of Scrutify. He's an experienced Linux professional and the senior editor of this blog. He is also an open-source contributor to many projects on Github and has written several technical guides on Linux. Apart from that, he’s also actively sharing his ideas and tutorials on Medium and Attirer. As the editor of this blog, Akshat brings his wealth of knowledge and experience to provide readers with valuable insights and advice on a wide range of Linux-related topics.