necrux
- Blog
Bash Shortcuts
I tend to spend quite a bit of my time on a command line, so I am always looking for little ways to make my life easier. Because of that, this post will be a bit of a living document that I plan to occasionally update as I discover more handy tricks. This is not a comprehensive list, nor is it intended to be one. These are shortcuts that allow me to have a smoother workflow.
Note: The ^ is shorthand notation for Ctrl, or the Control Key. If a capital letter is specified that means you need to hold down Shift as well. For example, the hotkey ‘^C’ means you would hold down Ctrl + Shift + c.
Bash Hotkeys
| ^C | Copy |
| ^V | Paste |
| ^a | Go to the beginning of the line. |
| ^e | Go to the end of the line. |
| ^l | Clear the Screen. |
| ^w | Delete the word before the cursor. |
| ^u | Clears the line before the cursor position. |
| ^k | Clear the line after the cursor. |
| ^d | Exit the current shell. |
| ^z | Suspend current process; fg restores it. |
| ^c | Kill current process (sends the SIGINT signal). |
| ^t | Swap the last two characters before the cursor. |
| Esc + t | Swap the last two words before the cursor. |
| Alt + f | Move cursor forward one word on the current line. |
| Alt + b | Move cursor backward one word on the current line. |
| Tab | Auto-complete files,folder names, and command names. |
Bash History
| !! | Run the last command again; this can be useful when combined with command substitution, e.g. for i in $(!!); do STUFF; done |
| !keyword | Reruns the last command starting with keyword. For example, if the last command I ran starting with ‘ser’ was service sshd restart, !ser would run that command. |
| !# | Where # is the number that corresponds to that command in history. |
| !$ | Final argument of the previous command. |
| !^ | First argument of the previous command. |
| Esc + . | Final argument of the previous command; hitting ‘Esc + .’ multiple times will cycle through the last argument history. |
| ^r | Search through previously used commands. |
Special Bash Variables
| $$ | PID of the current shell. |
| $! | PID of the last job run in the background. |
| $_ | Final argument of the previous command. |
| $? | Exit status of the previous command. |
SSH Sessions
| ~. | Terminate SSH session; ideal for hung sessions. |
| ~^z | Suspend the SSH session; type fg to resume it. |
| ~? | Display the supported escape sequences. |
Note: SSH escape sequences are only valid after a new line.