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.
On Linux systems, replace
open
with the name of your preferred text editor, such as nano
, vim
, or gedit
. One you’ve opened the file, you can delete any lines you’d rather not keep by hand. Save the file, then restart your shell, and the lines you’ve deleted will stop showing up.Clear Your Terminal for a Like-New Session
This one is mostly unrelated, but I’m mentioning it anyway. The command
clear
makes your Terminal look like you just opened a new session, which is useful if you take a lot of screenshots and want things to look tidy (or don’t want people over your shoulder to see what commands you’ve been running.)
This is entirely aesthetic: scroll up and you’ll still see your previous output. But if you’re in my line of work, it comes in handy.