Bash Shortcut Keys

Advertisement

Advertisement

Sometimes when working we don't always have a fully featured keyboard. Whether using a small portable bluetooth keyboard, old software, or you just want to be a command line ninja, these shortcuts are very important to know to increase productivity and to work through technical limitations on keyboards.

 

Moving and editing

Ctrl + a   Go to the beginning of the line (Home)
Ctrl + e   Go to the End of the line (End)
Ctrl + p   Previous command (Up arrow)
Ctrl + n   Next command (Down arrow)
Alt + b   Back (left) one word
Alt + f   Forward (right) one word
Ctrl + f   Forward one character
Ctrl + b   Backward one character
Ctrl + xx  Toggle between the start of line and current cursor position
Esc + b
Esc + f
Esc + del  Escape key words similar to above except on whole words
Esc + Ctrl + h
Esc + d
Ctrl + L   Clear the Screen, similar to the clear command
Ctrl + u   Cut/delete the line before the cursor position
Alt + Del Delete the Word before the cursor.
Alt + d   Delete the Word after the cursor.
Ctrl + d   Delete character under the cursor
Ctrl + h   Delete character before the cursor (Backspace)
Ctrl + w   Cut the Word before the cursor to the clipboard.
Ctrl + k   Cut the Line after the cursor to the clipboard.
Alt + t   Swap current word with previous
Ctrl + t   Swap the last two characters before the cursor (typo).
Esc  + t   Swap the last two words before the cursor.
Ctrl + y   Paste the last thing to be cut (yank)
Alt + u   UPPER capitalize every character from the cursor to the end of the current word.
Alt + l   Lower the case of every character from the cursor to the end of the current word.
Alt + c   Capitalize the character under the cursor and move to the end of the word.
Alt + r   Cancel the changes and put back the line as it was in the history (revert).
Ctrl + _   Undo
 

History

history   Lists history of commands with numbers
!420  Repeat history command number 420
Ctrl + r   Recall the last command including the specified character(s)
Ctrl + p   Previous command in history (i.e. walk back through the command history)
Ctrl + n   Next command in history (i.e. walk forward through the command history)
Ctrl + s   Go back to the next most recent command.
             (beware to not execute it from a terminal because this will also launch its XOFF).
Ctrl + o   Execute the command found via Ctrl+r or Ctrl+s
Ctrl + g   Escape from history searching mode
!!   Repeat last command
!nano   Run last command starting with nano
!nano:p   Print last command starting with nano
!$   Last argument of previous command
ALT + .   Last argument of previous command (ESC then . also works)
!*   All arguments of previous command
^abc­^­def   Run previous command, replacing abc with def
 

Process control

Ctrl + C   Interrupt/Kill whatever you are running (SIGINT)
Ctrl + l   Clear the screen
Ctrl + s   Stop output to the screen (for long running verbose commands)
Ctrl + q   Allow output to the screen (if previously stopped using command above)
Ctrl + D   Send an EOF marker, unless disabled by an option, this will close the current shell (EXIT)
Ctrl + Z   Send the signal SIGTSTP to the current task, which suspends it. bg will send it to run in the background. To return to it later enter fg 'process name' (foreground).
 

Misc

 
cd -
Return you to the last working directory.
 
cd ~
Returns you to your home directory
 
ls -lh
Human readable file sizes
 
cp settings.{php,bak}
Brace expansion: Equivalent to cp settings.php settings.bak
 
cp settings.php{,.bak}
Brace expansion: Equivalent to cp settings.php settings.php.bak
 
mv settings.php{.bak,}
Brace expansion: Equivalent to mv settings.php.bak settings.php
 
ls | grep settings
Piping commands: Passes the output of ls through grep looking for keyword "settings"

 

Advertisement

Advertisement