A shell also known as the command line is one of the most important tools for any software developer.
You can do very complex things very quickly here.
Learning to use the shell efficiently can make your life much easier.
In this post I’ll be writing about the most useful keybindings for the bash and zsh shells.
*nix systems generally ship with the Bourne again shell or bash and zsh or Z shell is also quite popular among developers as it provides some very powerful features.
Some of these shortcuts may work with other shells too.
Navigation đ
Keybinding | Action |
---|
Alt + f/b | Move cursor to previous/next word |
Ctrl + a/e | Move cursor to beginning/end of command |
Ctrl + xx | Toggle between the start of line and current cursor position |
Editing âī¸
Keybinding | Action |
---|
Alt + . or !$ | Previous commands last argument |
Alt + c | Capitalize word |
Alt + d | Delete next word |
Alt + Del | Delete previous word |
Alt + l/u | Lowercase/Uppercase word |
Alt + r | Cancel the changes, revert |
Alt + t | Swap current word with previous |
Alt + w | Delete until beginning (zsh) |
Ctrl + _ | Undo |
Ctrl + k | Cut till end |
Ctrl + t | Swap the last two characters before the cursor |
Ctrl + u | Delete whole line (zsh)/ cut until beginning (bash) |
Ctrl + w | Cut previous word |
Ctrl + x,e | Open command in editor |
Ctrl + y | Paste |
Esc + t | Swap the last two words before the cursor |
!* | All arguments of previous command |
Process đ
Keybinding | Action |
---|
Ctrl + c | Interrupt/Kill |
Ctrl + d | Close current shell |
Ctrl + l | Clear screen |
Ctrl + z | Background/Foreground job |
History âŗ
Keybinding | Action |
---|
Ctrl + r | History search |
Ctrl + s | Go back to the next most recent command |
^abc^def | Run previous command, replacing abc with def |
Modes đšī¸
Keybinding | Action |
---|
Ctrl + x,v | vi mode (zsh) |
bindkey -e | Emacs mode |
set -o vi / bindkey -v | Vi mode |
If you know any other useful keybindings, feel free to comment below.
You can find the original GitHub gist here.