Bash Terminal Shortcuts

6 min read Updated: January 31, 2026 Beginner
Essential keyboard shortcuts and productivity tips for Bash and Zsh terminal navigation, editing, and history

Cursor Navigation

Moving Around

Shortcut Action
Ctrl + A Move to beginning of line
Ctrl + E Move to end of line
Ctrl + F Move forward one character
Ctrl + B Move backward one character
Alt + F Move forward one word
Alt + B Move backward one word
Ctrl + XX Toggle between start of line and current position

Quick Tips

# Use arrow keys + Ctrl for word jumping
Ctrl + → (Right Arrow)  # Move forward one word
Ctrl + ← (Left Arrow)   # Move backward one word

Text Editing

Deleting Text

Shortcut Action
Ctrl + D Delete character under cursor
Ctrl + H Delete character before cursor (backspace)
Ctrl + W Delete word before cursor
Alt + D Delete word after cursor
Ctrl + K Delete from cursor to end of line
Ctrl + U Delete from cursor to beginning of line

Cut, Copy, Paste

Shortcut Action
Ctrl + Y Paste (yank) last deleted text
Alt + Y Cycle through kill ring (previous yanks)
Ctrl + K Cut from cursor to end of line
Ctrl + U Cut from cursor to start of line

Modifying Text

Shortcut Action
Ctrl + T Swap current character with previous
Alt + T Swap current word with previous
Alt + U Uppercase word from cursor
Alt + L Lowercase word from cursor
Alt + C Capitalize word from cursor
Ctrl + _ Undo last edit

Command History

Shortcut Action
/ Ctrl + P Previous command
/ Ctrl + N Next command
Ctrl + R Reverse search history
Ctrl + S Forward search history
Ctrl + G Cancel history search
Alt + . Insert last argument of previous command

History Expansion

# Execute last command
!!

# Execute command N in history
!N

# Execute last command starting with 'git'
!git

# Execute last command containing 'commit'
!?commit?

# Use arguments from last command
echo hello world
echo !!:*          # Uses "hello world"
echo !!:1          # Uses "hello"
echo !!:2          # Uses "world"
echo !!:$          # Uses last argument "world"

# Replace in last command
^old^new           # Replace 'old' with 'new' and execute

History Commands

# View history
history

# View last 20 commands
history 20

# Clear history
history -c

# Search history
history | grep "pattern"

# Execute command from history
!42                # Execute command #42

Process Control

Shortcut Action
Ctrl + C Interrupt (kill) current process
Ctrl + Z Suspend current process
Ctrl + D Exit shell (or send EOF)
Ctrl + L Clear screen

Job Control

# Run in background
command &

# List background jobs
jobs

# Bring job to foreground
fg %1

# Send job to background
bg %1

# Kill job
kill %1

Screen Control

Shortcut Action
Ctrl + L Clear screen (keep current line)
Ctrl + S Stop screen output
Ctrl + Q Resume screen output

Terminal Commands

# Clear screen
clear

# Reset terminal
reset

# Clear scrollback
clear && printf '\e[3J'

Command Line Tricks

Auto-completion

Shortcut Action
Tab Auto-complete command/filename
Tab Tab Show all completions
Alt + ? Show completions
Alt + * Insert all completions

Quick Substitution

# Repeat last command
!!

# Repeat with sudo
sudo !!

# Change directory back
cd -

# Refer to home directory
cd ~
cd ~/projects

# Refer to previous directory
cd ~-

Brace Expansion

# Create multiple files
touch file{1,2,3}.txt
# Creates: file1.txt file2.txt file3.txt

# Create sequence
mkdir day{01..31}
# Creates: day01, day02, ..., day31

# Multiple extensions
cp file.{txt,bak}
# Same as: cp file.txt file.bak

# Nested braces
echo {a,b}{1,2}
# Output: a1 a2 b1 b2

Zsh-Specific Shortcuts

Enhanced Features

Shortcut Action
Ctrl + R Fuzzy history search (with fzf)
Tab Smart completion with menu
Alt + Enter Insert newline (multi-line command)

Directory Navigation

# Quick directory changes (zsh)
cd ...     # Go up 2 directories
cd ....    # Go up 3 directories

# Directory stack
pushd /path  # Push directory to stack
popd         # Pop and go to previous
dirs -v      # List directory stack

# Auto cd (if enabled)
/path/to/dir  # Same as: cd /path/to/dir

Useful Aliases

Add to ~/.bashrc or ~/.zshrc:

# Navigation
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ~='cd ~'
alias -- -='cd -'

# Listing
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias lt='ls -ltr'  # Sort by time

# Safety
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Shortcuts
alias h='history'
alias c='clear'
alias e='exit'
alias v='vim'

# Git
alias g='git'
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'

# Docker
alias d='docker'
alias dc='docker-compose'
alias dps='docker ps'

Quick Reference Card

Essential Shortcuts

Category Shortcut Action
Navigate Ctrl+A Start of line
  Ctrl+E End of line
  Alt+F/B Word forward/back
Edit Ctrl+W Delete word
  Ctrl+K Delete to end
  Ctrl+U Delete to start
  Ctrl+Y Paste deleted
History Ctrl+R Search history
  / Navigate history
  !! Last command
Control Ctrl+C Kill process
  Ctrl+Z Suspend process
  Ctrl+L Clear screen
  Ctrl+D Exit shell

Resources