Press the “up” arrow in the Mac or Linux command line and you’ll see the last command you ran. Keep pressing “up” and you’ll see more commands; you can go back days, months, or even years.
This is called your history, and it’s very convenient. If you made a mistake typing a long command, simply press “up” and fix the problem. If you want to re-connect to an SSH server you used the other day, simply press “up” until you see the relevant command.
It’s useful, but there’s also a potential security problem here, particularly if you accidentally typed a password in plain text at some point. How does one clear this history? Long story short, you can do so with two commands: history -c
, followed by rm ~/.bash_history
. Here’s what those commands do, for greater clarity.
Clear the Current Session’s History
Your history can be broke down into two chunks. There’s your current sessions’ history, and there’s your long-term history. Our first command, history -c
, deals with the current session.
The history
command is built into Bash itself, and the -c
modifier tells the program to clear that history. This command will prevent anything in your current session from being written to your long-term history, but does not clear out that long-term history.
Clear All of Your Bash History
If you want to remove the entirety of your history, run the following command:
rm ~/.bash_history
If you don’t know, rm
is a longstanding command for deleting files in UNIX-based systems. ~/.bash_history
is a simple text document, which stores you Bash history.
Alternatively, you could open the file and delete any lines you’re concerned about. On a Mac, type open ~/.bash_history
and your default text editor will open the file.