---
syntax: markdown
tags: [tldr, common]
source: https://github.com/tldr-pages/tldr.git
---
# history expansion

> Reuse and expand the shell history in `sh`, Bash, Zsh, `rbash` and `ksh`.
> More information: <https://www.gnu.org/software/bash/manual/html_node/History-Interaction>.

- Run the previous command as root (`!!` is replaced by the previous command):

`sudo !!`

- Run a command with the last argument of the previous command:

`{{command}} !$`

- Run a command with the first argument of the previous command:

`{{command}} !^`

- Run the Nth command of the history:

`!{{n}}`

- Run the command `n` lines back in the history:

`!-{{n}}`

- Run the most recent command containing `string`:

`!?{{string}}?`

- Run the previous command, replacing `string1` with `string2`:

`^{{string1}}^{{string2}}^`

- Perform a history expansion, but print the command that would be run instead of actually running it:

`{{!-n}}:p`
