bash: Bash History Builtins

 
 9.2 Bash History Builtins
 =========================
 
 Bash provides two builtin commands which manipulate the history list and
 history file.
 
 'fc'
           fc [-e ENAME] [-lnr] [FIRST] [LAST]
           fc -s [PAT=REP] [COMMAND]
 
      The first form selects a range of commands from FIRST to LAST from
      the history list and displays or edits and re-executes them.  Both
      FIRST and LAST may be specified as a string (to locate the most
      recent command beginning with that string) or as a number (an index
      into the history list, where a negative number is used as an offset
      from the current command number).  If LAST is not specified it is
      set to FIRST.  If FIRST is not specified it is set to the previous
      command for editing and -16 for listing.  If the '-l' flag is
      given, the commands are listed on standard output.  The '-n' flag
      suppresses the command numbers when listing.  The '-r' flag
      reverses the order of the listing.  Otherwise, the editor given by
      ENAME is invoked on a file containing those commands.  If ENAME is
      not given, the value of the following variable expansion is used:
      '${FCEDIT:-${EDITOR:-vi}}'.  This says to use the value of the
      'FCEDIT' variable if set, or the value of the 'EDITOR' variable if
      that is set, or 'vi' if neither is set.  When editing is complete,
      the edited commands are echoed and executed.
 
      In the second form, COMMAND is re-executed after each instance of
      PAT in the selected command is replaced by REP.  COMMAND is
      intepreted the same as FIRST above.
 
      A useful alias to use with the 'fc' command is 'r='fc -s'', so that
      typing 'r cc' runs the last command beginning with 'cc' and typing
      'r' re-executes the last command (SeeAliases).
 
 'history'
           history [N]
           history -c
           history -d OFFSET
           history [-anrw] [FILENAME]
           history -ps ARG
 
      With no options, display the history list with line numbers.  Lines
      prefixed with a '*' have been modified.  An argument of N lists
      only the last N lines.  If the shell variable 'HISTTIMEFORMAT' is
      set and not null, it is used as a format string for STRFTIME to
      display the time stamp associated with each displayed history
      entry.  No intervening blank is printed between the formatted time
      stamp and the history line.
 
      Options, if supplied, have the following meanings:
 
      '-c'
           Clear the history list.  This may be combined with the other
           options to replace the history list completely.
 
      '-d OFFSET'
           Delete the history entry at position OFFSET.  OFFSET should be
           specified as it appears when the history is displayed.
 
      '-a'
           Append the new history lines to the history file.  These are
           history lines entered since the beginning of the current Bash
           session, but not already appended to the history file.
 
      '-n'
           Append the history lines not already read from the history
           file to the current history list.  These are lines appended to
           the history file since the beginning of the current Bash
           session.
 
      '-r'
           Read the history file and append its contents to the history
           list.
 
      '-w'
           Write out the current history list to the history file.
 
      '-p'
           Perform history substitution on the ARGs and display the
           result on the standard output, without storing the results in
           the history list.
 
      '-s'
           The ARGs are added to the end of the history list as a single
           entry.
 
      When any of the '-w', '-r', '-a', or '-n' options is used, if
      FILENAME is given, then it is used as the history file.  If not,
      then the value of the 'HISTFILE' variable is used.