Useful bash / zsh shortcuts
MacOS iTerm 2 users must turn on meta key — https://coderwall.com/p/_lmivq
Nice visual cheatsheet from the article:
Ctrl + a |
Go to the beginning of the line (Home) |
Ctrl + e |
Go to the End of the line (End) |
Alt + b |
Back (left) one word |
Alt + f |
Forward (right) one word |
Ctrl + f |
Forward one character |
Ctrl + b |
Backward one character |
Ctrl + xx |
Toggle between the start of line and current cursor position |
Ctrl + u |
Cut the line before the cursor position |
Alt + Del |
Delete the Word before the cursor |
Alt + d |
Delete the Word after the cursor |
Ctrl + d |
Delete character under the cursor |
Ctrl + h |
Delete character before the cursor (backspace) |
Ctrl + w |
Cut the Word before the cursor to the clipboard |
Ctrl + k |
Cut the Line after the cursor to the clipboard |
Alt + t |
Swap current word with previous |
Ctrl + t |
Swap the last two characters before the cursor (typo) |
Esc + t |
Swap the last two words before the cursor. |
Ctrl + y |
Paste the last thing to be cut (yank) |
Alt + u |
UPPER capitalize every character from the cursor to the end of the current word. |
Alt + l |
Lower the case of every character from the cursor to the end of the current word. |
Alt + c |
Capitalize the character under the cursor and move to the end of the word. |
Alt + r |
Cancel the changes and put back the line as it was in the history (revert) |
Сtrl + _ |
Undo |
Ctrl + r |
Recall the last command including the specified character(s)(equivalent to : vim ~/.bash_history). |
Ctrl + p |
Previous command in history (i.e. walk back through the command history) |
Ctrl + n |
Next command in history (i.e. walk forward through the command history) |
Ctrl + s |
Go back to the next most recent command. |
Ctrl + o |
Execute the command found via Ctrl+r or Ctrl+s |
Ctrl + g |
Escape from history searching mode |
Alt + . |
Use the last word of the previous command |
Bash also has some handy features that use the ! (bang) to allow you to do some funky stuff with bash commands.
!! |
run last command |
!blah |
run the most recent command that starts with ‘blah’ (e.g. !ls) |
!blah:p |
print out the command that !blah would run (also adds it as the latest command in the command history) |
!$ |
the last word of the previous command (same as Alt + .) |
!$:p |
print out the word that !$ would substitute |
!* |
the previous command except for the last word (e.g. if you type ‘find some_file.txt /‘, then !* would give you ‘find some_file.txt‘) |
!*:p |
print out what !* would substitute |