Mastering The Linux Shell – Bash Shortcuts Explained (Now With Cheat Sheets)
Updated: July 30th, 2021
During my day-to-day activities, I use the Bash shell a lot. My #1 policy is to optimize the most frequently used activities as much as possible, so I’ve compiled these handy bash shortcuts and hints (tested in SecureCRT on Windows and Konsole on Linux). The article only touches on the default bash mode – emacs, not vi. If you haven’t specifically assigned your shell mode to vi (set –o vi), you’re almost certainly using the emacs mode. Learn these and your shell productivity will skyrocket, I guarantee it.
Download Version 1.3:
And, for quick reference, here's the ugly html version:
Keyboard shortcut |
Action |
Navigation |
|
Ctrl-A | Go to the beginning of the line (note that if you use GNU screen, you can use the Home button to do this, especially considering that Ctrl-A is a special control character in screen). |
Ctrl-E | Go to the end of the line (note that if you use GNU screen, you can use the End button to do this). |
Alt-B (or ESC, left arrow) | Jump back one word using a non-alphanumeric character as delimiter. |
Alt-F (or ESC, right arrow) | Jump forward one word using a non-alphanumeric character as delimiter. |
Ctrl-PGUP or Shift-PGUP | This may or may not work, and it works differently on different console apps. It will either scroll up one line at a time, 1 page at a time, or it may not work at all. I'm inclined to think it's not a bash shortcut at all. |
Ctrl-PGDN or Shift-PGDN | Same as the above but scrolling is done in the opposite direction. |
Up/Down | Previous/Next command in history. This one is way too obvious but I'm including it for completeness. |
Ctrl-R | History search. For example, Ctrl-R svn Ctrl-R Ctrl-R … will cycle through all recently run commands with the ‘svn’ in them. It is one of the most useful shortcuts in bash. |
Ctrl-O | Takes whatever line was after the line you selected with Ctrl-R and makes it your next command. |
Command Line Manipulation |
|
Ctrl-W | Cut one word backwards using white space as delimiter. |
Alt-BACKSPACE | Cut one word backwards using a non-alphanumeric character as delimiter (different from Ctrl-W, for example, abc;bcd will cut to abc;). |
Ctrl-K | Cut everything forward to end of line. |
Ctrl-U | Cut everything backwards to beginning of line. |
Ctrl-T | Transpose the current character with the previous one. I almost never use this. Never mind, I never use it, but someone might find it useful. |
Alt-T | Transpose the word at cursor with the one before cursor. In other words, swap them around. |
Ctrl-Y | Paste whatever was cut by the last cut command. |
Ctrl-V | Insert the next character literally. For example, Ctrl-V TAB inserts the actual TAB character. This shortcut is often misunderstood because of mistyping Ctrl-V and not realizing what it does. |
Ctrl-_ | Undo the last command. Don’t forget – it’s Ctrl-Shift-MINUS, not Ctrl-MINUS. |
Alt-R | Revert all changes to current line. Very useful if you accidentally modify a command in history. |
Alt-U/Alt-L/Alt-C | Uppercase/lowercase/capitalize from cursor to end of word and move cursor past end of word. |
Terminal control |
|
Ctrl-L | Clear screen while keeping whatever is already typed in the command line intact. |
Ctrl-S | Suspend currently running terminal. |
Ctrl-Q | Unsuspend the terminal suspended by Ctrl-S. You need to be aware of this shortcut because 99% of the time you’ve accidentally pressed Ctrl-S and need to undo its effects. |
Ctrl-Z | Suspend the currently running process (usually followed by bg to resume it in the background or fg to resume in the foreground). |
TAB | Autocomplete. Start typing, then hit TAB. You will either get a list of possible completion values (2 TABs needed) or the only choice will be filled in (only 1 TAB is needed). This shortcut is quite obvious and well known, so I put it at the bottom of the list. |
Hope you guys will find this list helpful. I think it is relatively complete, but feel free to add any omissions.
In the meantime, if you found this article useful, feel free to buy me a cup of coffee below.