Learn the history command in under 1 minute! #shorts #linux

Published: March 29, 2023 (Updated: Mar 29, 2023)

Enjoying this content? Subscribe to the Channel!

Unlock the Power of Time Travel: Mastering the Linux history Command


Introduction: Stop Retyping, Start Commanding

Welcome back to Darren’s Tech Tutorials! If you spend any significant time in the Linux command line, you know how quickly those commands pile up. Maybe you ran a complex setup script last week and now you need to run it again, but you can’t quite remember the syntax. Are you doomed to type it all out again? Absolutely not!

The Linux history command is one of the most underrated productivity tools available. It’s essentially a built-in time machine for your shell sessions, allowing you to track, search, modify, and instantly re-execute commands you’ve run previously.

In this comprehensive guide, we’re diving deep into the history command. Get ready for a major productivity boost!

The Fundamentals: Viewing Your Past

The simplest use of the history command gives you a chronological list of every command you’ve executed in your current shell session (and many previous sessions, depending on your configuration).

1. Viewing Your Full History

To see the complete list, simply type:

history

The output will look something like this, with a sequential number assigned to each command:

200  ls -la
201  sudo apt update
202  history

2. Limiting the Output

A full history list can be hundreds or even thousands of entries long. To make it manageable, you can limit the output by specifying the number of lines you want to see.

To see only the last 10 commands you ran:

history 10

This is incredibly handy when you just need a quick reminder of the few commands you just executed.

Time Travel 101: Re-Running Commands Instantly

The real power of history isn’t just seeing what you did; it’s being able to instantly re-execute those complex commands without ever touching the keyboard.

1. Re-running the Last Command (The Double Bang)

This is one of the fastest tricks in the book. If you just ran a long command and need to repeat it, or maybe you forgot to add sudo to the beginning, use the “double bang” notation:

!!

The shell will instantly execute the previous command listed in your history.

2. Re-running a Specific Command by Number

Remember those numbers assigned to your commands (like 201, 202, etc.)? You can use those to execute any item from the list.

If your history shows 201 sudo apt update, you can run it again by typing the exclamation mark followed by the number:

!201

3. Re-running a Command by Keyword

Don’t remember the number, but remember the command started with ssh? You can search for the most recent command that began with a specific string and execute it immediately.

!ssh

Tip: Be careful with this! Always ensure the command it executes is the one you actually want.

Searching Like a Command Line Detective

When you have thousands of commands saved, scrolling through the list is impractical. Fortunately, Linux gives us two highly effective methods for searching history.

Method 1: Reverse Search (The Keyboard Shortcut)

This is a must-know shortcut for everyday usage. It searches your history in reverse chronological order as you type.

  1. Press Ctrl + R
  2. Start typing a keyword (e.g., install or server).
  3. The shell instantly presents the most recent matching command.
  4. If it’s not the one you want, keep hitting Ctrl + R to cycle through older matches.
  5. Once you find the correct command, hit Enter to execute it.

Method 2: Using grep for Detailed Searches

If you want a view of all commands containing a specific word, you can pipe the output of history into the grep utility:

history | grep "docker"

This command will show you all history lines that contain the word “docker,” making it easy to see the sequence of related commands you ran previously.

Advanced Management: Cleaning Up Your History

While keeping a robust history is great for productivity, there are times—especially for security or privacy reasons—when you need to modify or clear the record.

1. Clearing All History for the Current Session

To wipe the command history completely for the currently running shell session, use the -c flag:

history -c

Note: This only clears the history stored in the shell’s memory. To ensure it doesn’t get written back to the history file (~/.bash_history), you may need to close the terminal immediately afterward.

2. Controlling History Size

Linux keeps track of your history settings using environment variables, primarily:

  • HISTSIZE: How many commands are stored in memory for the current session.
  • HISTFILESIZE: How many commands are stored in the persistent history file (usually ~/.bash_history).

You can check your current limits:

echo $HISTSIZE
echo $HISTFILESIZE

To permanently change these settings, you would edit your shell’s configuration file (like ~/.bashrc or ~/.zshrc). For example, to set the limit to 5000 commands:

export HISTSIZE=5000
export HISTFILESIZE=5000

3. Ignoring Specific Commands

Do you run a command frequently that you don’t want saved (like a password entry or a quick ls)? You can tell the shell to ignore commands that start with a space by setting the HISTCONTROL variable:

export HISTCONTROL=ignorespace

After setting this, any command preceded by a space ( command) will not be written to your history file.

Conclusion and Next Steps

The history command is much more than just a scrolling list of past actions—it is an essential tool for boosting efficiency and ensuring you never lose track of a crucial setup command again. By mastering the search functions (Ctrl+R and grep) and learning how to instantly re-execute commands (!! and !N), you can elevate your command line game immediately.

Give these advanced techniques a try the next time you open your terminal. I promise you’ll feel the productivity difference!

If you found this guide helpful, smash that like button, and be sure to subscribe to Darren’s Tech Tutorials for more clear, actionable guides to mastering the tools of the trade. What other Linux commands would you like to see a deep dive on? Let me know in the comments below!