Command | Description |
---|---|
history |
Display history |
history n |
Display only the last n commands from the history |
history -c |
Clears your current history and starts adding commands from scratch |
history -d n |
Delete the specified nth command from history |
sudo !! |
Run the previous command with sudo |
<space> command |
Prevent history from adding the command to history |
shopt -s histverify |
Don't execute expanded result immediately |
echo $HISTSIZE |
Display maximum of commands that can be stored in history file |
Modifiers | Description |
---|---|
<word>:h |
Remove a trailing file name component, leaving only the head from the expanded command. |
<word>:r |
Remove a trailing suffix of the form .xxx , leaving the basename. |
<word>:t |
Remove all leading file name components, leaving the tail. |
<word>:e |
Remove all but the trailing suffix. |
<word>:p |
Print the new command but do not execute it. |
<word>:q |
Quote the substituted words, escaping further substitutions. |
<word>:x |
Quote the substituted words as with q, but break into words at blanks and newlines. The q and x modifiers are mutually exclusive; the last one supplied is used. |
<word>:s/old/new/ |
Substitute new for the first occurrence of old in the event line. |
<word>:gs/old/new/ |
Cause changes to be applied over the entire event line. This is used in conjunction with :s ' |
<word>:& |
Repeat the previous substitution. |
<word>:G |
Apply the following s' or &' modifier once to each word in the event line. |
Slices | Description |
---|---|
!!:n |
Expand only n th token from most recent command (command is 0 ; first argument is 1 ) |
!^ |
Expand first argument from most recent command |
!$ |
Expand last token from most recent command |
!!:n-m |
Expand range of tokens from most recent command |
!!:n-$ |
Expand n th token to last from most recent command |
Event | Description |
---|---|
!! |
Expand the previous command |
!-n |
Expand n th most recent command |
!n |
Expand n th command in history |
!<command> |
Expand most recent invocation of command <command> |
!<text> |
Expand the last command that begins with a specific text |
!n:p or !<text>:p |
Print the expanded command before executing it. |
^string1^string2 |
Expand the last command, replacing string1 with string2. |
!# |
Expand the entire command line typed so far. |
<aside> 💡 Word designators are used to select desired words from the event. A colon “:” separates the event specification from the word designator. Here are some word designators (^, $, *, -, or %)
</aside>
Word | Description |
---|---|
!$ |
Expand last parameter of most recent command |
!* |
Expand all parameters of most recent command |
!^ |
Expand the first parameter of the most recent command |
!n |
Expand n th command in history |
!% |
The first word matched by the most recent `?string?' search, if the search string begins with a character that is part of a word. |
!x-y |
A range of words; -y abbreviates 0-y |
<aside> 💡
Following the optional word designator, one or more of the modifiers listed on the left side may appear, each preceded by a ':'. These change or edit the word or words chosen from the history event.
Remove a trailing file name component, leaving only the head from the expanded command.
$ cat demo.sh
$ $!:h:p
#⇒ this will print demo
</aside>