Ambas as maneiras têm seus prós e contras, como você e Julie notaram. Mas a melhor solução é usar os dois quando necessário. Então, quando você não tem certeza do que !!
resultará,
- primeiro UpArrow para ver o que era
- então DownArrow
- e, em seguida,
sudo !!
Existem mais truques sobre a história. Isso é de man bash
.
Event Designators
An event designator is a reference to a command line entry in the his‐
tory list. Unless the reference is absolute, events are relative to
the current position in the history list.
! Start a history substitution, except when followed by a blank,
newline, carriage return, = or ( (when the extglob shell option
is enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command minus n.
!! Refer to the previous command. This is a synonym for '!-1'.
!string
Refer to the most recent command preceding the current position
in the history list starting with string.
!?string[?]
Refer to the most recent command preceding the current position
in the history list containing string. The trailing ? may be
omitted if string is followed immediately by a newline.
^string1^string2^
Quick substitution. Repeat the previous command, replacing
string1 with string2. Equivalent to ''!!:s/string1/string2/''
(see Modifiers below).
!# The entire command line typed so far.
Para ver toda a história sobre expansão do histórico , acesse man bash
e encontre a seção EXPANSÃO HISTÓRICA .