-<kbd>Alt</kbd>+<kbd>.</kbd>: insert last argument from last command.
-<kbd>Alt</kbd>+<kbd>number</kbd>+<kbd>.</kbd>: insert #nth last argument from last command.
-<kbd>Alt</kbd>+<kbd>-</kbd> , <kbd>number</kbd> , <kbd>Alt</kbd>+<kbd>.</kbd>, **zsh:**<kbd>Alt</kbd>+<kbd>-</kbd>+<kbd>#</kbd>+<kbd>.</kbd>: insert #nth first argument from last command.
*In Linux you can repeat commands to go back in history*
## Cut/Paste commands
*(relative to cursor's position)*
-<kbd>Ctrl</kbd>+<kbd>w</kbd>: cuts last word
-<kbd>Alt</kbd>+<kbd>d</kbd>: cuts next word
-<kbd>Ctrl</kbd>+<kbd>k</kbd>: cuts everything after
-<kbd>Ctrl</kbd>+<kbd>u</kbd>, **zsh:**<kbd>Alt</kbd>+<kbd>w</kbd>: cuts everything before
- **zsh:** <kbd>Ctrl</kbd>+<kbd>u</kbd>: cuts the entire command *(In bash you can combine <kbd>Ctrl</kbd>+<kbd>u</kbd> , <kbd>Ctrl</kbd>+<kbd>k</kbd>)*
-<kbd>Ctrl</kbd>+<kbd>y</kbd>: paste characters previously cut with any **Cut command**. *In bash you can chain **cut commands**, and <kbd>Ctrl</kbd>+<kbd>y</kbd> will paste them all.*
## Move cursor
-<kbd>Ctrl</kbd>+<kbd>left</kbd>: move to last word
-<kbd>Ctrl</kbd>+<kbd>right</kbd>: move to next word
-<kbd>home</kbd> or <kbd>Ctrl</kbd>+<kbd>a</kbd>: move to start of command
-<kbd>end</kbd> or <kbd>Ctrl</kbd>+<kbd>e</kbd>: move to end of command
## Other
-<kbd>Ctrl</kbd>+<kbd>_</kbd>: undo last edit *(very useful when exceeding <kbd>Ctrl</kbd>+<kbd>w</kbd>)*
# To see all shortcuts available
- **bash:** `bind -lp`
- **zsh:** `bindkey -L`
# Other examples
## Common usecases
2019-11-06 16:06:16 +01:00
Let's consider the last command to be:
mv foo bar
<kbd>up</kbd> , <kbd>Ctrl</kbd>+<kbd>w</kbd>: last command without the last word = `mv foo`
<kbd>Alt</kbd>+<kbd>0</kbd>+<kbd>.</kbd>: first argument of last command = `mv`