Skip to content

Instantly share code, notes, and snippets.

@tuxfight3r
Last active October 13, 2026 23:32
Show Gist options
  • Select an option

  • Save tuxfight3r/60051ac67c5f0445efee to your computer and use it in GitHub Desktop.

Select an option

Save tuxfight3r/60051ac67c5f0445efee to your computer and use it in GitHub Desktop.
Bash keyboard shortcuts

Bash Shortcuts

visual cheetsheet

Moving

command description
ctrl + a Goto BEGINNING of command line
ctrl + e Goto END of command line
ctrl + b move back one character
ctrl + f move forward one character
alt + f move cursor FORWARD one word
alt + b move cursor BACK one word
ctrl + xx Toggle between the start of line and current cursor position
ctrl + ] + x Where x is any character, moves the cursor forward to the next occurance of x
alt + ctrl + ] + x Where x is any character, moves the cursor backwards to the previous occurance of x

Edit / Other

command description
ctrl + d Delete the character under the cursor
ctrl + h Delete the previous character before cursor
ctrl + u Clear all / cut BEFORE cursor
ctrl + k Clear all / cut AFTER cursor
ctrl + w delete the word BEFORE the cursor
alt + d delete the word FROM the cursor
ctrl + y paste (if you used a previous command to delete)
ctrl + i command completion like Tab
ctrl + l Clear the screen (same as clear command)
ctrl + c kill whatever is running
ctrl + d Exit shell (same as exit command when cursor line is empty)
ctrl + z Place current process in background
ctrl + _ Undo
ctrl + x ctrl + u Undo the last changes. ctrl+ _ does the same
ctrl + t Swap the last two characters before the cursor
esc + t Swap last two words before the cursor
alt + t swap current word with previous
esc + .
esc + _
alt + [Backspace] delete PREVIOUS word
alt + < Move to the first line in the history
alt + > Move to the end of the input history, i.e., the line currently being entered
alt + ? display the file/folder names in the current path as help
alt + * print all the file/folder names in the current path as parameter
alt + . print the LAST ARGUMENT (ie "vim file1.txt file2.txt" will yield "file2.txt")
alt + c capitalize the first character to end of word starting at cursor (whole word if cursor is at the beginning of word)
alt + u make uppercase from cursor to end of word
alt + l make lowercase from cursor to end of word
alt + n
alt + p Non-incremental reverse search of history.
alt + r Undo all changes to the line
alt + ctl + e Expand command line.
~[TAB][TAB] List all users
$[TAB][TAB] List all system variables
@[TAB][TAB] List all entries in your /etc/hosts file
[TAB] Auto complete
cd - change to PREVIOUS working directory

History

command description
ctrl + r Search backward starting at the current line and moving 'up' through the history as necessary
crtl + s Search forward starting at the current line and moving 'down' through the history as necessary
ctrl + p Fetch the previous command from the history list, moving back in the list (same as up arrow)
ctrl + n Fetch the next command from the history list, moving forward in the list (same as down arrow)
ctrl + o Execute the command found via Ctrl+r or Ctrl+s
ctrl + g Escape from history searching mode
!! Run PREVIOUS command (ie sudo !!)
!vi Run PREVIOUS command that BEGINS with vi
!vi:p Print previously run command that BEGINS with vi
!n Execute nth command in history
!$ Last argument of last command
!^ First argument of last command
^abc^xyz Replace first occurance of abc with xyz in last command and execute it

Kill a job

n = job number, to list jobs, run jobs

kill %n

Example:

kill %1

References

  1. http://cnswww.cns.cwru.edu/php/chet/readline/readline.html
  2. https://github.com/fliptheweb/bash-shortcuts-cheat-sheet/blob/master/README.md
@mcMoneySack

Copy link
Copy Markdown

@Eslam-Farg ::
Hi, I'm using in this case ALT + #, that puts that
hash sign at the start of the line.

@dvag-sebastian-rose

Copy link
Copy Markdown

Those are the default keys (Emacs scheme). You start your Bash with the VI scheme turned on:
bash -o vi

@Utopiah

Utopiah commented Nov 21, 2025

Copy link
Copy Markdown

added to ~/.bashrc


bashnavigation(){
cat <<EOF
     ^a         ^e       \\
  <-------   -------->    } Moving
    alt-b    alt-f       /
     <----   --->       /
       ^b    ^f        /
         <- ->
$ cp monfi[c]hier dir/
     <----   --->
     ^w     alt-d       \\
  <-------   -------->   } Erasing
     ^u         ^k      /
EOF
}

@sh3bang

sh3bang commented Oct 8, 2026

Copy link
Copy Markdown

The arrow for "alt+d" is wrong. The shortcut stops at the end of the current word boundary and not before the next word

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment