Bash Shortcuts
These are Readline (Emacs-mode) key bindings — they work the same in Bash, Zsh, and most REPLs, on Linux and macOS. Learning even the top row (Ctrl-A, Ctrl-R, Ctrl-W) makes the shell dramatically faster.
Move the Cursor
| Keys |
Moves to |
Ctrl-A |
start of the line |
Ctrl-E |
end of the line |
Alt-B |
back one word |
Alt-F |
forward one word |
Ctrl-XX |
toggle between start and current position |
Edit the Line
| Keys |
Does |
Ctrl-W |
delete the word before the cursor |
Ctrl-U |
delete from cursor to start of line |
Ctrl-K |
delete from cursor to end of line |
Ctrl-Y |
paste (yank) what you just deleted |
Alt-D |
delete the word after the cursor |
Ctrl-T |
transpose (swap) the last two characters |
Alt-U / Alt-L |
uppercase / lowercase the next word |
Ctrl-_ |
undo the last edit |
Cut and paste, shell-style. Ctrl-U, Ctrl-K, and Ctrl-W don't just delete — they cut into a buffer. Ctrl-Y pastes it back, so you can move text around the line.
History
| Keys / token |
Does |
Ctrl-R |
reverse-search history (type to filter) |
Ctrl-G |
cancel the history search |
Ctrl-P / Ctrl-N |
previous / next command |
Alt-. |
insert the last argument of the previous command |
!! |
the entire previous command |
!$ |
the last argument of the previous command |
!abc |
the most recent command starting with abc |
The classic sudo rescue
apt update
sudo !!
Control the Shell
| Keys |
Does |
Ctrl-C |
interrupt the running command |
Ctrl-D |
end of input / log out of the shell |
Ctrl-Z |
suspend to the background (fg to resume) |
Ctrl-L |
clear the screen (same as clear) |
Ctrl-S / Ctrl-Q |
pause / resume terminal output |