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).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.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
orHome
– moves the cursor to the start of a line.Ctrl+E
orEnd
– moves the cursor to the end of the line.Ctrl+B
orLeft Arrow
– moves the cursor back one character at a time.Ctrl+F
orRight Arrow
– moves the cursor forward one character at a time.Ctrl
+Left Arrow
orAlt+B
orEsc
and thenB
– moves the cursor back one word at a time.Ctrl
+Right Arrow
orAlt+C
orEsc
and thenF
– 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.Ctrl+P
andCtrl+N
– alternatives for the Up and Down 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.Ctrl+S
– 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
orDelete
– remove or deletes the character under the cursor.Ctrl+K
– removes all text from the cursor to the end of the line.Ctrl+X
and thenBackspace
– 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.Esc
and thenT
– transposes the two words immediately before (or under) the cursor.Esc
and thenU
– transforms the text from the cursor to the end of the word to uppercase.Esc
and thenL
– transforms the text from the cursor to the end of the word to lowercase.Esc
and thenC
– 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.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.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.!top
– execute the most recent command that starts with ‘top’ (e.g. !).!top:p
– displays the command that !top 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’).!$:p
– displays the word that !$ would execute.!*
– 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.
Ctrl + L
– doesn’t clear the screen. It adds a bunch of new lines and changes the view pane of the terminal giving the effect that it has cleared the screen.“
Ctrl+S
– launches a forward search, through the bash history.” -> totally wrong, as stated a few lines above, this freezes the terminal!Alt+C
will initial-capitalize a word as a side effect of moving to the next word. UseAlt-F
instead.@Yong
Thanks for sharing this.
ALT+#
to comment command line, but history will store this line.I want to type
@
symbol in linux. how to do that?Hello, you should be careful with the first tip. launching the editor this way will execute the commands you write after.
ref: https://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#Miscellaneous-Commands
Ctrl + U
removes all the text from the cursor to the beginning of the line, notCtrl + X
!@Hazhir
Okay, many thanks for mentioning this, we will cross-check and correct the article.
You forgot about “Control+J” when you have written a command, i.e:
Pressing
Ctrl + J
will execute the command, same as Enter.It is wrong!
@Alexander
Thanks for sharing this, we will correct in the article after testing.
CTRL+U
can be used in place ofCTRL+X+BACKSPACE
.I love your posts so much!
Because I love what you do guys, I thought I should point out when I see something that seems to be wrong.
I think there is a typo regarding the shortcut:
CTRL + S
. You have used it twice throughout your post. First time was as a shortcut to pause all output to console. Second time as forward search.@Ahmad
Many thanks for pointing this out, we will correct it as soon as possible.