All Projects → fliptheweb → Bash Shortcuts Cheat Sheet

fliptheweb / Bash Shortcuts Cheat Sheet

Useful shortcuts for bash/zsh

Programming Languages

shell
77523 projects
bash
514 projects

Projects that are alternatives of or similar to Bash Shortcuts Cheat Sheet

Starship
☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Stars: ✭ 20,504 (+4436.28%)
Mutual labels:  zsh, fish
tii
Command not found? Install it right there!
Stars: ✭ 27 (-94.03%)
Mutual labels:  zsh, fish
config
Fig's integrations with bash, zsh, fish, ssh, and tmux. Also contains Fig's installation and update scripts. Finally, this repo is the root of the .fig folder that is installed on your computer when you download Fig!
Stars: ✭ 44 (-90.27%)
Mutual labels:  zsh, fish
Shellder
🐚 Featured zsh/fish shell theme
Stars: ✭ 192 (-57.52%)
Mutual labels:  zsh, fish
Termux Style
Simple script to change color-schemes and fonts for Termux.
Stars: ✭ 400 (-11.5%)
Mutual labels:  zsh, fish
Zoxide
A smarter cd command. Supports all major shells.
Stars: ✭ 4,422 (+878.32%)
Mutual labels:  zsh, fish
hoard
cli command organizer written in rust
Stars: ✭ 71 (-84.29%)
Mutual labels:  zsh, fish
Powerline
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile.
Stars: ✭ 12,989 (+2773.67%)
Mutual labels:  zsh, fish
G
Simple go version manager, gluten-free
Stars: ✭ 307 (-32.08%)
Mutual labels:  zsh, fish
Cod
cod is a completion daemon for bash/fish/zsh
Stars: ✭ 288 (-36.28%)
Mutual labels:  zsh, fish
Gitmux
💻 Git in your tmux status bar
Stars: ✭ 180 (-60.18%)
Mutual labels:  zsh, fish
Dtags
Directory Tags for Lazy Programmers
Stars: ✭ 351 (-22.35%)
Mutual labels:  zsh, fish
Kafkactl
Command Line Tool for managing Apache Kafka
Stars: ✭ 177 (-60.84%)
Mutual labels:  zsh, fish
Silver
A cross-shell customizable powerline-like prompt with icons
Stars: ✭ 238 (-47.35%)
Mutual labels:  zsh, fish
Powerline Go
A beautiful and useful low-latency prompt for your shell, written in go
Stars: ✭ 2,299 (+408.63%)
Mutual labels:  zsh, fish
carapace-bin
multi-shell multi-command argument completer
Stars: ✭ 42 (-90.71%)
Mutual labels:  zsh, fish
Gh
Easily manage your local git repos
Stars: ✭ 156 (-65.49%)
Mutual labels:  zsh, fish
Z.lua
⚡ A new cd command that helps you navigate faster by learning your habits.
Stars: ✭ 2,164 (+378.76%)
Mutual labels:  zsh, fish
basalt
The rock-solid Bash package manager
Stars: ✭ 16 (-96.46%)
Mutual labels:  zsh, fish
Zsh Autosuggestions
Fish-like autosuggestions for zsh
Stars: ✭ 19,697 (+4257.74%)
Mutual labels:  zsh, fish

Useful bash / zsh shortcuts

MacOS iTerm 2 users must turn on meta key — https://coderwall.com/p/_lmivq

Nice visual cheatsheet from the article:

visual cheetsheet

Move cursor

Ctrl + a Go to the beginning of the line (Home)
Ctrl + e Go to the End of the line (End)
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

Edit

Ctrl + u Cut 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)
Сtrl + _ Undo

History

Ctrl + r Recall the last command including the specified character(s)(equivalent to : vim ~/.bash_history).
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.
Ctrl + o Execute the command found via Ctrl+r or Ctrl+s
Ctrl + g Escape from history searching mode
Alt + . Use the last word of the previous command

Process control

Bang(!) - The History Expansion

Bash also has some handy features that use the ! (bang) to allow you to do some funky stuff with bash commands.
General notation is '![event][:word[:modifier[:modifier]...]]'.
You may omit word separator ':', if the word designator begins with a '^', '$', '*', '-', or '%'.
If a word designator is supplied without an event specification, the previous command is used as the event.
After the optional word designator, you can add a sequence of one or more modifiers, each preceded by a ':'.

Events Meaning Example
! Start a history substitution, except when followed by a space, tab, the end of the line, ‘=’ or ‘(’ (when the extglob shell option is enabled using the shopt builtin).

    
!n Refer to command line n.
$ history
1 echo foo bar baz
2 history
$ !1
#Print command that will be saved in history
#+and executed
echo foo bar baz
#Actual execution
foo bar baz
!-n Refer to the command n lines back.
$ history
1 echo foo
2 echo bar
3 echo baz
4 history
$ !-3
echo bar
bar
!! Refer to the previous command. This is a synonym for ‘!-1’.
$ echo foo bar baz
foo bar baz
$ !!
echo foo bar baz
foo bar baz
!string Refer to the most recent command preceding the current position in the history list starting with string.
$printf '%s\n' foo
foo
$ echo bar
bar
$ !pri
printf '%s\n' foo
foo
!?string[?] Refer to the most recent command preceding the current position in the history list containing string. The trailing ‘?’ may be omitted if the string is followed immediately by a newline.
$printf '%s\n' foo
foo
$ echo bar
bar
$ !?ntf
printf '%s\n' foo
foo
$ !?bar
echo bar
bar
^string1^tring2^ Quick Substitution. Repeat the last command, replacing string1 with string2. Equivalent to `!!:s/string1/string2`. For more info, refer to `s/old/new/` in Modifiers section.
$ echo foo
foo
$ ^echo^printf '%s\n'^
printf '%s\n' foo
foo
!# Repeat entire command line before this event.
$ echo foo; echo bar; !#echo baz
echo foo; echo bar; echo foo; echo bar; echo baz
foo
bar
foo
bar
baz
Words Meaning Example
0 (zero) The 0th word. For many applications, this is the command word.
$ echo foo
foo
$ !:0
echo
n The nth word.
$ echo foo bar baz
foo bar baz
$ echo !:2
echo bar
bar
^ The first argument; that is, word 1.
$ echo foo bar baz
foo bar baz
$ echo !^
echo foo
foo
$
The last argument.
$ echo foo bar baz
foo bar baz
$ echo !$
echo baz
baz
% The word matched by the most recent `?string?` search
$ echo foo
foo
$ printf '%s\n' bar
bar
$ !?ch
echo foo
foo
$ !% baz
echo baz
baz
$ !?bar
printf '%s\n' bar
bar
$ echo !%
echo bar
bar
x-y A range of words; `-y` abbreviates `0-y`.
$ echo foo bar baz
foo bar baz
$ echo !:2-3
echo bar baz
bar baz
$ !:-1
echo bar
bar
* All of the words, except the 0th. This is a synonym for `1-$`. It is not an error to use `*` if there is just one word in the event - the empty string is returned in that case.
$ echo foo bar baz
foo bar baz
$ printf '%s\n' !*
printf '%s\n' foo bar baz
foo
bar
baz
x* Abbreviates `x-$`
$ echo foo bar baz
foo bar baz
$ printf '%s\n' !:2*
printf '%s\n' bar baz
bar
baz
x- Abbreviates `x-$` like `x*`, but omits the last word.
$ echo foo bar baz
foo bar baz
$ printf '%s\n' !:0-
printf '%s\n' echo foo bar
echo
foo
bar
Modifiers Meaning Example
p Print the new command but do not execute it.
Printed command is saved in history, so you can use Ctrl+p to re-enter it in current prompt.
$ echo foo bar baz
foo bar baz
$ !:p
#Printed, but not executed
echo foo bar baz
$ !:*:p
foo bar baz
h Remove a trailing pathname component, leaving only the head (Actually, remove all after last `/`, including).
$ echo foo /example/path/bar.txt baz
foo /example/path/bar.txt baz
$ !:p:h
echo foo /example/path
t Remove all leading pathname components, leaving the tail (Actually, remove all before last `/`, including).
$ echo foo /example/path/bar.txt baz
foo /example/path/bar.txt baz
$ !:p:t
bar.txt baz
r Remove a trailing suffix of the form `.suffix`, leaving the basename (Actually, remove all after last `.`, including).
$ echo foo /example/path/bar.txt baz
foo /example/path/bar.txt baz
$ !:p:r
echo foo /example/path/bar
e Remove all but the trailing suffix (Actually, remove all before last `.`, including).
$ echo foo /example/path/bar.txt baz
foo /example/path/bar.txt baz
$ !:p:e
txt baz
q Quote the substituted words, escaping further substitutions.
$ echo foo 'bar baz'
foo bar baz
$ !:p:q
'echo foo '\'bar baz'\'''
x Quote the substituted words as with ‘q’, but break into words at spaces, tabs, and newlines.
$ echo foo 'bar baz'
foo bar baz
$ !:p:x
'echo' 'foo' ''\'bar' 'baz'\'''
s/old/new/ Substitute new for the first occurrence of old in the event line. Any delimiter may be used in place of `/`. The delimiter may be quoted in old and new with a single backslash. If `&` appears in new, it is replaced by old. A single backslash will quote the `&`. The final delimiter is optional if it is the last character on the input line.
$ echo foo bar
foo bar
$ !:p:s/foo/baz
echo baz bar
& Repeat the previous substitution.
$ echo foo bar
foo bar
$ !:p:s/foo/baz
echo baz bar
$ printf '%s\n' foo
foo
$ !:p:&
printf '%s\n' baz
g
a
Cause changes to be applied over the entire event line. Used in conjunction with `s`, as in gs/old/new/, or with `&`.
$ echo foo bar foo
foo bar foo
$ !:p:gs/foo/baz
echo baz bar baz
G Apply the following ‘s’ modifier once to each word in the event. Result is same as in `g` modifier

    

Recent links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].