Nowadays, the more spending time in Bash shell and typing longer commands, the more precious time is in my mind.
So I spent some time to read about “Command Line Editing” in the bash manual and Google the experience old man left.
Well, here’s the new shortcuts I learned:
ps: the marked ones as em are my favourite.
Basic moves
- Move back one character. Ctrl + b
- Move forward one character. Ctrl + f
- Delete current character. Ctrl + d
- Delete previous character. Backspace
- Undo.
Ctrl + -
Moving faster
- Move to the start of line. Ctrl + a
- Move to the end of line. Ctrl + e
- Move forward a word.
Meta + f
(a word contains alphabets and digits, no symbols) - Move backward a word.
Meta + b
- Clear the screen. Ctrl + l
What is Meta? Meta is your Alt key, normally.
For Mac OSX user, you need to enable it yourself.
Open Terminal > Preferences > Settings > Keyboard, and enable Use option as meta key.
Meta key, by convention, is used for operations on word.
Cut and paste (‘Kill and yank’ for old schoolers)
- Cut from cursor to the end of line.
Ctrl + k
- Cut from cursor to the end of word.
Meta + d
- Cut from cursor to the start of word.
Meta + Backspace
- Cut from cursor to previous whitespace.
Ctrl + w
- Paste the last cut text. Ctrl + y
- Loop through and paste previously cut text. Meta + y (use it after Ctrl + y)
- Loop through and paste the last argument of previous commands. Meta + .
Search the command history
- Search as you type.
Ctrl + r
and type the search term; Repeat Ctrl + r to loop through results. - Search the last remembered search term. Ctrl + r twice.
- End the search at current history entry. Ctrl + j
- Cancel the search and restore original line. Ctrl + g
Not Enough??
Come on!
- A comprehensive bash editing mode cheatsheet by Peteris Krumin (catonmat.net).
- Vim users! Do you know you can switch to Vi-style editing mode? Here: vi-style cheatsheet.
- Bash command line editing is actually handled by GNU Readline Library. So just dive into Readline manual for everything else.