Make sure that your history is enabled. You can check the current status by running:
set -o
The output should contain (note the history on
line):
histexpand on
history on
ignoreeof off
If this is not enabled, you need to run set -o history
. To make this change persistent, you need to append it to ~/.bashrc
:
set -o history
If you want to run the previous command, you can run the next command as well:
!!
From Bash manual page:
Event Designators
An event designator is a reference to a command line entry 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 line minus n.
!! Refer to the previous command. This is a synonym for `!-1'.
!string
Refer to the most recent command starting with string.
!?string[?]
Refer to the most recent command containing string. The trailing ?
may be omitted if string is followed immediately by a newline.
^string1^string2^
Quick substitution. Repeat the last command, replacing string1 with
string2. Equivalent to ``!!:s/string1/string2/'' (see Modifiers below).
!# The entire command line typed so far.
If you're using Bash, you can use the default shortcuts for navigating through the history as well:
- Ctrl + P: Previous command
Ctrl + N: Next command
Commands for Manipulating the History
previous-history (C-p)
Fetch the previous command from the history list, moving back in
the list.
next-history (C-n)
Fetch the next command from the history list, moving forward in
the list.