Why bother with shortcuts?
The shell isn't just a command runner — it's a text editor for your current line. Bash and zsh both use the Readline library (or zsh's own ZLE, which copies the same key bindings). Once you learn six or seven shortcuts, you stop reaching for the arrow keys and your hands stay on the home row.
Movement
Ctrl+A— start of lineCtrl+E— end of lineAlt+B/Alt+F— back / forward one wordCtrl+B/Ctrl+F— back / forward one char
Editing
Ctrl+W— delete previous word (most-used shortcut on the shell, full stop)Ctrl+U— delete from cursor to start of lineCtrl+K— delete from cursor to end of lineCtrl+Y— paste the last killed text (the kill ring)Ctrl+T— swap two adjacent characters
History
Ctrl+R— incremental reverse search; type characters, press Enter to run,Ctrl+Ragain for next matchCtrl+P/Ctrl+N— previous / next history (same as up/down arrow)!!— last command.sudo !!reruns the last command with sudo.!$— last argument of last command. Great forcat /long/path/to/log; vim !$.
Process control
Ctrl+C— interrupt the running commandCtrl+Z— suspend it (restore later withfg)Ctrl+D— EOF; exits the shell when the line is emptyCtrl+L— clear screen (same as theclearcommand)
vi mode for ex-vim users
Run set -o vi (bash) or bindkey -v (zsh) to flip the prompt into modal editing. Esc to leave insert, then standard vim motion: w, b, 0, $, dd, cc. Pair with the next track's fzf integration and your prompt becomes a tiny vim.