Using up arrow to run previous command

Make sure you are actually using bash. A common gotcha is creating a new user with useradd instead of adduser or the Users and groups (GUI) application. With the former, the default shell set is /bin/sh. Run chsh (change shell) to make sure it's set to /bin/bash.


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.


In terminal enter:

gedit  ~/.inputrc

Then copy paste and save:

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

From now on in terminal you can do incremental search, All you need to do to find a previous command is to enter say the first two or three letters and upward arrow will take you there quickly.