How-To Geek

How to Clear the Terminal History on Linux or macOS

bash-edit-history-mac

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.

bash-history-c

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

bash-clear-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.

bash-edit-history-mac

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.)

bash-clear

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.

Justin Pot is a technology writer and enthusiast who lives in Portland, Oregon. Follow him on Twitter and Facebook, if you want. You don't have to.

  • Published 11/7/16

More Articles You Might Like