Last Updated on May 22, 2022
Navigate the shell efficiently
The history builtin keeps a list of all the other commands that have been run from that terminal session, then allows you to replay or reuse those commands instead of retyping them. Using history effectively is an immediate productivity gain.
You can type history at the shell to see all the commands entered since you started the shell.
There are some simple ways to access history.
- We can use the up and down arrows to browse the command history. This is an effective way to reuse a command that’s recently been entered.
- The keyboard shortcut Ctrl+r lets us search the command history. The shell prompt changes to (reverse-i-search). Type letters to narrow down the search the most recent match display. We can keep pressing Ctrl+r to see other matches. There’s no need to remember long complicated commands.
There’s lots of other ways to improve the way we work with history. For example, in Page 3 of this article, we created an alias that lets us search for commands in the history reducing the number of characters to type to complete the search.
Another way to navigate the shell efficiently is to use the tab key. It shows suggestions or auto-completes a word or path.
Even though Ctrl+r is a time-saver, there is open source software which offer improved methods of navigating through your shell history. We recommend McFly, a tiny utility that replaces the functionality offered by Ctrl-r with an intelligent search engine. Unlike bash’s Ctrl-r, it also takes into account your working directory and the context of recently executed commands. The tool’s suggestions are prioritized in real time with a small neural network instead of a simple linear function. We also recommend fzf, a general-purpose command-line fuzzy finder.
We close this introduction to the shell with a list of all the shell builtins.
Pages in this article:
Page 1 – Types of Commands
Page 2 – Shell Builtins
Page 3 – Aliases
Page 4 – External Commands
Page 5 – Navigate the shell efficiently
Page 6 – Appendix – Explanation of Shell Builtins
All articles in this series: