In this article, we will share a number of Bash command-line shortcuts useful for any Linux user. These shortcuts allow you to easily and in a fast manner, perform certain activities such as accessing and running previously executed commands, opening an editor, editing/deleting/changing text on the command line, moving the cursor, controlling processes etc. on the command line.

Although this article will mostly benefit Linux beginners getting their way around with command line basics, those with intermediate skills and advanced users might also find it practically helpful. We will group the bash keyboard shortcuts according to categories as follows.

Launch an Editor

Open a terminal and press Ctrl+X and Ctrl+E to open an editor (nano editor) with an empty buffer. Bash will try to launch the editor defined by the $EDITOR environment variable.

Controlling The Screen

These shortcuts are used to control terminal screen output:

Ctrl+L – clears the screen (same effect as the “ clear ” command).

– clears the screen (same effect as the “ ” command). Ctrl+S – pause all command output to the screen. If you have executed a command that produces verbose, long output, use this to pause the output scrolling down the screen.

– pause all command output to the screen. If you have executed a command that produces verbose, long output, use this to pause the output scrolling down the screen. Ctrl+Q – resume output to the screen after pausing it with Ctrl+S.

Move Cursor on The Command Line

The next shortcuts are used for moving the cursor within the command-line:

Ctrl+A or Home – moves the cursor to the start of a line.

or – moves the cursor to the start of a line. Ctrl+E or End – moves the cursor to the end of the line.

or – moves the cursor to the end of the line. Ctrl+B or Left Arrow – moves the cursor back one character at a time.

or – moves the cursor back one character at a time. Ctrl+F or Right Arrow – moves the cursor forward one character at a time.

or – moves the cursor forward one character at a time. Ctrl + Left Arrow or Alt+B or Esc and then B – moves the cursor back one word at a time.

+ or or and then – moves the cursor back one word at a time. Ctrl + Right Arrow or Alt+C or Esc and then F – moves the cursor forward one word at a time.

Search Through Bash History

The following shortcuts are used for searching for commands in the bash history:

Up arrow key – retrieves the previous command. If you press it constantly, it takes you through multiple commands in history, so you can find the one you want. Use the Down arrow to move in the reverse direction through the history.

– retrieves the previous command. If you press it constantly, it takes you through multiple commands in history, so you can find the one you want. Use the to move in the reverse direction through the history. Ctrl+P and Ctrl+N – alternatives for the Up and Down arrow keys, respectively.

and – alternatives for the and arrow keys, respectively. Ctrl+R – starts a reverse search, through the bash history, simply type characters that should be unique to the command you want to find in the history.

– starts a reverse search, through the bash history, simply type characters that should be unique to the command you want to find in the history. Ctrl+S – launches a forward search, through the bash history.

– launches a forward search, through the bash history. Ctrl+G – quits reverse or forward search, through the bash history.

Delete Text on the Command Line

The following shortcuts are used for deleting text on the command line:

Ctrl+D or Delete – remove or deletes the character under the cursor.

or – remove or deletes the character under the cursor. Ctrl+K – removes all text from the cursor to the end of the line.

– removes all text from the cursor to the end of the line. Ctrl+X and then Backspace – removes all the text from the cursor to the beginning of the line.

Transpose Text or Change Case on the Command Line

These shortcuts will transpose or change the case of letters or words on the command line:

Ctrl+T – transposes the character before the cursor with the character under the cursor.

– transposes the character before the cursor with the character under the cursor. Esc and then T – transposes the two words immediately before (or under) the cursor.

and then – transposes the two words immediately before (or under) the cursor. Esc and then U – transforms the text from the cursor to the end of the word to uppercase.

and then – transforms the text from the cursor to the end of the word to uppercase. Esc and then L – transforms the text from the cursor to the end of the word to lowercase.

and then – transforms the text from the cursor to the end of the word to lowercase. Esc and then C – changes the letter under the cursor (or the first letter of the next word) to uppercase, leaving the rest of the word unchanged.

Working With Processes in Linux

The following shortcuts help you to control running Linux processes.

Ctrl+Z – suspend the current foreground process. This sends the SIGTSTP signal to the process. You can get the process back to the foreground later using the fg process_name (or %bgprocess_number like %1 , %2 and so on) command.

– suspend the current foreground process. This sends the signal to the process. You can get the process back to the foreground later using the process_name (or like , and so on) command. Ctrl+C – interrupt the current foreground process, by sending the SIGINT signal to it. The default behavior is to terminate a process gracefully, but the process can either honor or ignore it.

– interrupt the current foreground process, by sending the signal to it. The default behavior is to terminate a process gracefully, but the process can either honor or ignore it. Ctrl+D – exit the bash shell (same as running the exit command).

Learn more about: All You Need To Know About Processes in Linux [Comprehensive Guide]

Bash Bang (!) Commands

In the final part of this article, we will explain some useful ! (bang) operations:

!! – execute last command.

– execute last command. !top – execute the most recent command that starts with ‘top’ (e.g. ! ).

– execute the most recent command that starts with (e.g. ). !top:p – displays the command that !top would run (also adds it as the latest command in the command history).

– displays the command that would run (also adds it as the latest command in the command history). !$ – execute the last word of the previous command (same as Alt + ., e.g. if last command is ‘ cat tecmint.txt ’, then !$ would try to run ‘ tecmint.txt ’).

– execute the last word of the previous command (same as ., e.g. if last command is ‘ ’, then would try to run ‘ ’). !$:p – displays the word that !$ would execute.

– displays the word that would execute. !* – displays the last word of the previous command.

– displays the last word of the previous command. !*:p – displays the last word that !* would substitute.

For more information, see the bash man page:

$ man bash

That’s all for now! In this article, we shared some common and useful Bash command-line shortcuts and operations. Use the comment form below to make any additions or ask questions.