6 Useful Tools to Remember Linux Commands Forever

There are thousands of tools, utilities, and programs that come pre-installed on a Linux system. You can run them from a terminal window or virtual console as commands via a shell such as Bash.

A command is typically the pathname (eg. /usr/bin/top) or basename (e.g. top) of a program including arguments passed to it. However, there is a common misconception among Linux users that a command is an actual program or tool.

Remembering Linux commands and their usage is not easy, especially for new Linux users. In this article, we will share 6 command-line tools for remembering Linux commands.

1. History Command

Bash records all unique commands executed by users on the system in a history file. Each user’s bash history file is stored in their home directory (e.g. /home/tecmint/.bash_history for user tecmint).

A user can only view his/her own history file content and root can view the bash history file for all users on a Linux system.

To view your bash history, use the history command as shown.

$ history  
View User History Command
View User History Command

To fetch a command from bash history, press the Up arrow key continuously to search through a list of all unique commands that you run previously. If you have skipped the command you are looking for or failed to get it, use the Down arrow key to perform a reverse search.

This bash feature is one of the many ways of easily remembering Linux commands. You can find more examples of the history command in these articles:

2. Fish Shell – Friendly Interactive Shell

Fish is a modern, powerful, user-friendly, feature-rich, and interactive shell that is compatible with Bash or Zsh. It supports automatic suggestions of file names and commands in the current directory and history respectively, which helps you to easily remember commands.

In the following screenshot, the command “uname -r” is in the bash history, to easily remember it, type the later “u” or “un” and fish will auto-suggest the complete command. If the command auto-suggested is the one you wish to run, use the Right arrow key to select it and run it.

Fish - Friendly Interactive Shell
Fish – Friendly Interactive Shell

Fish is a fully-fledged shell program with a wealth of features for you to remember Linux commands in a straightforward manner.

3. Apropos Command

apropos is a command that searches and displays the name and short description of a keyword, for instance, a command name, as written in the man page of that command.

If you do not know the exact name of a command, simply type a keyword (regular expression) to search for it. For example, if you are searching for the description of the docker-commit command, you can type docker, apropos will search and list all commands with the string docker, and their description as well.

$ apropos docker
Find Linux Command Description
Find Linux Command Description

You can get the description of the exact keyword or command name you have provided as shown.

$ apropos docker-commit
OR
$ apropos -a docker-commit

apropos command is another useful way of remembering Linux commands, to guide you on what command to use for a specific task or if you have forgotten what a command is used for. Read on, because the next tool is even more interesting.

4. Explain Shell Script

Explain Shell is a small Bash script that explains shell commands. It requires the curl program and a working internet connection to display a command description summary and in addition, if the command includes a flag, it also shows a description of that flag.

To use it, first, you need to add the following code at the bottom of you $HOME/.bashrc file.

# explain.sh begins
explain () {
  if [ "$#" -eq 0 ]; then
    while read  -p "Command: " cmd; do
      curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
    done
    echo "Bye!"
  elif [ "$#" -eq 1 ]; then
    curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
  else
    echo "Usage"
    echo "explain                  interactive mode."
    echo "explain 'cmd -o | ...'   one quoted command to explain it."
  fi
}

Save and close the file, then source it or open a fresh terminal window.

$ source .bashrc

Assuming you have forgotten what the command “apropos -a” does, you can use explain command to help you remember it, as shown.

$ explain 'apropos -a'
Show Linux Command Manual
Show Linux Command Manual

This script can explain to you any shell command effectively, thus helping you remember Linux commands. Unlike the explain shell script, the next tool brings a distinct approach, it shows usage examples of a command.

5. Cheat – Linux Command Cheat Sheet

Cheat is a simple, interactive command-line cheat-sheet program that shows use cases of a Linux command with a number of options and their short understandable function. It is useful for Linux newbies and sysadmins.

To install and use it on Unix-like systems, you may simply paste the following snippet into your terminal:

$ cd /tmp 
$ wget https://github.com/cheat/cheat/releases/download/4.4.0/cheat-linux-amd64.gz 
$ gunzip cheat-linux-amd64.gz
$ chmod +x cheat-linux-amd64 
$ sudo mv cheat-linux-amd64 /usr/local/bin/cheat

You may need to change the version number (4.4.0) and the archive (cheat-linux-amd64.gz) while downloading from the releases page.

To view a cheatsheet for tar command.

$ cheat tar
Cheat - Tar Command Usage
Cheat – Tar Command Usage

Do check out our complete article about the Cheat program and its usage with examples.

6. Tardigrade

Tardigrade is a bookmarking tool for commands that allows you to bookmark and organize your frequently used commands for easy access. The commands are saved in a hierarchical and organized way that is easy to retrieve.

For installation and usage, visit the Tardigrade website and download the latest version of the bookmarking tool.

That’s all! In this article, we have shared 6 command-line tools for remembering Linux commands. If you know any other tools for the same purpose that are missing from the list above, let us know via the feedback form below.

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

17 thoughts on “6 Useful Tools to Remember Linux Commands Forever”

  1. Arron,

    What’s the point of providing a snippet to cut and paste into a terminal window to install a cheat if the snippet is so badly formatted that the cut-and-paste fails on all 5 lines? Here’s what you presented. The leading "$" in each of the snippet lines prevents them from running:

    “To install and use it on Unix-like systems, you may simply paste the following snippet into your terminal:

    $ cd /tmp 
    $ wget https://github.com/cheat/cheat/releases/download/4.4.0/cheat-linux-amd64.gz 
    $ gunzip cheat-linux-amd64.gz
    $ chmod +x cheat-linux-amd64 
    $ sudo mv cheat-linux-amd64 /usr/local/bin/cheat
    

    You may need to change the version number…”

    — JRS

    Reply
    • @Jrs,

      In the terminal, the $ sign is often used as the default prompt symbol, which indicates that commands are executed as a normal user.

      Similary, # sign in the prompt indicates that you are logged in as the root user.

      Reply
  2. Tardigrade is a bookmark tool allows you to bookmark and organize your frequently used commands for easy access.

    For more: https://github.com/sebastianxyzsss/tardigrade

    Reply
  3. You forgot the Bash Tab tool.

    In Bash, type a few letters of the beginning of the command, press Tab, and you get all commands beginning with those letters. Add letters and press Tab again. Repeat until you only have one option, add flags and parameters and press Enter.

    Note: Some terminal emulators sound the alarm beep when you press Tab, just press again and it should work.

    Reply
  4. You may want to try https://github.com/dvorka/hstr which reads Bash history and allows quick navigation and filtering – you can see the context of similar history entries. In addition to history management i.e. deleting particular command(s) from history, allows for “suggest box style” filtering and favorite commands lookup.

    It can be easily bound to Ctrl+r.

    Reply
  5. I love Linux (wait for it) but, I think if i had to decide between reading man pages or jumping off a bridge, i would have to think about it. I think that’s why i like reading some of your articles. when you read the articles then go back to the man pages they make more sense. I think that shows how useful examples are. Maybe i can make that a kind of project….

    Reply
    • @mike

      Thanks for this useful feedback, our main aim is to help Linux users(sysadmin, geeks, newbies) find easy ways of using this operating system we love. That is why we spend lots of time preparing articles such as this.

      Reply
  6. Why even use the built in and easy to use features of bash when you can use less comfortable or third party ones, right?

    history? Ctrl+R surely will not perform a quick partial search in your history which you can cycle through by pressing Ctrl+R repeatedly.

    FISH? Pressing tab for the available commands must be hard.

    Man pages look scary when you won’t read them, but I don’t think that the easy solution is just not to read them and rely on third party instead.

    That explain script looks dodgy af.

    Reply
      • @Erez is referring to the man commad, which if you know the name of the command, provides you with most of what you need to know. Many times the listing will mention related commands. Also useful for explainations for programming functions and other info in section 3 of the man system.

        Start here in the online version:

        https://linux.die.net/man/1/man

        Reply

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.