MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


User Commands                                          history(1)



NAME
     history, fc, hist - process command history list

SYNOPSIS
     /usr/bin/fc [-r] [-e editor] [first [last]


     /usr/bin/fc -l [-nr] [first [last]


     /usr/bin/fc -s [old=new] [first]


  csh
     history [-hr] [n]


  ksh
     fc -e - [old=new] [command]


     fc -s [old = new] [command]


     fc [-e ename] [-nlr] [first [last]


  ksh93
     hist [-lnprs] [-e editor][-N num][first[last]


DESCRIPTION
  /usr/bin/fc
     The fc utility lists or edits and reexecutes, commands  pre-
     viously entered to an interactive sh.


     The command history list references commands by number.  The
     first  number in the list is selected arbitrarily. The rela-
     tionship of a number to its command does not  change  except
     when  the user logs in and no other process is accessing the
     list, at which time the system can reset  the  numbering  to
     start the oldest retained command at another number (usually
     1). When the number reaches the value in HISTSIZE  or  32767
     (whichever  is  greater),  the  shell  can wrap the numbers,
     starting the next command with a lower number  (usually  1).
     However, despite this optional wrapping of numbers, fc main-
     tains the time-ordering sequence of the commands. For  exam-
     ple,  if  four commands in sequence are given the numbers 32
     766, 32 767, 1 (wrapped), and 2 as they are  executed,  com-
     mand  32  767  is considered the command previous to 1, even
     though its number is higher.



SunOS 5.11           Last change: 2 Nov 2007                    1






User Commands                                          history(1)



     When commands are edited (when the -l option is  not  speci-
     fied), the resulting lines is entered at the end of the his-
     tory list and then reexecuted by sh.  The  fc  command  that
     caused  the editing is not entered into the history list. If
     the editor returns a non-zero exit status,  this  suppresses
     the entry into the history list and the command reexecution.
     Any command-line variable assignments or redirection  opera-
     tors used with fc affects both the fc command itself as well
     as the command that results, for example:

       fc -s -- -1 2>/dev/null




     reinvokes the previous command, suppressing  standard  error
     for both fc and the previous command.

  csh
     Display the history list. If n is given, display only the  n
     most recent events.

     -r    Reverse the order of printout to be most recent  first
           rather than oldest first.


     -h    Display the history list without leading numbers. This
           is  used  to produce files suitable for sourcing using
           the -h option to the csh built-in command, source(1).


  History Substitution:
     History substitution allows you to use words  from  previous
     command  lines in the command line you are typing. This sim-
     plifies spelling corrections and the repetition  of  compli-
     cated  commands or arguments. Command lines are saved in the
     history list, the size of which is controlled by the history
     variable.  The history shell variable can be set to the max-
     imum number of command lines that is saved  in  the  history
     file, that is:

       set history = 200



     allows the history list to keep track of the most recent 200
     command  lines.  If not set, the C shell saves only the most
     recent command.


     A history substitution begins with a  !  (although  you  can
     change  this  with  the  histchars  variable)  and can occur



SunOS 5.11           Last change: 2 Nov 2007                    2






User Commands                                          history(1)



     anywhere on the command line; history substitutions  do  not
     nest.  The  !  can be escaped with \ to suppress its special
     meaning.


     Input lines containing history substitutions are  echoed  on
     the terminal after being expanded, but before any other sub-
     stitutions take place or the command gets executed.

  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
         space character, tab, newline, = or (.


     !!

         Refer to the previous command. By itself, this substitu-
         tion repeats the previous command.


     !n

         Refer to command line n.


     !-n

         Refer to the current command line minus n.


     !str

         Refer to the most recent command starting with str.


     !?str?

         Refer to the most recent command containing str.


     !?str? additional

         Refer to the most  recent  command  containing  str  and
         append additional to that referenced command.






SunOS 5.11           Last change: 2 Nov 2007                    3






User Commands                                          history(1)



     !{command} additional

         Refer to the most recent command beginning with  command
         and append additional to that referenced command.


     ^previousword^replacement^

         Repeat the previous command line  replacing  the  string
         previousword  with  the  string  replacement.  This  is
         equivalent to the history substitution:

         Repeat the previous command line  replacing  the  string
         previousword  with  the  string  replacement.  This  is
         equivalent to the history substitution:

           !:s/previousword/replacement/.

         To re-execute a specific previous command and make  such
         a substitution, say, re-executing command #6:

           !:6s/previousword/replacement/.



  Word Designators:
     A `:' (colon) separates the  event  specification  from  the
     word  designator.  2It can be omitted if the word designator
     begins with a ^, $, *, - or %. If the word is to be selected
     from  the  previous  command,  the second ! character can be
     omitted from the event specification. For instance, !!:1 and
     !:1  both  refer  to the first word of the previous command,
     while !!$ and !$ both refer to the last word in the previous
     command. Word designators include:

     #         The entire command line typed so far.


     0         The first input word (command).


     n         The n'th argument.


     ^         The first argument, that is, 1.


     $         The last argument.


     %         The word matched by (the most recent) ?s search.




SunOS 5.11           Last change: 2 Nov 2007                    4






User Commands                                          history(1)



     x-y       A range of words; -y abbreviates 0-y.


     *         All the arguments, or a null  value  if  there  is
               just one word in the event.


     x*        Abbreviates x-$.


     x-        Like x* but omitting word $.


  Modifiers:
     After the optional word designator, you can add  a  sequence
     of  one or more of the following modifiers, each preceded by
     a :.

     h                           Remove a trailing pathname  com-
                                 ponent, leaving the head.


     r                           Remove a trailing suffix of  the
                                 form    `.xxx',    leaving   the
                                 basename.


     e                           Remove all but the suffix, leav-
                                 ing the extension.


     s/oldchars/replacements/    Substitute replacements for old-
                                 chars. oldchars is a string that
                                 can   contain   embedded   blank
                                 spaces, whereas previousword in
                                 the event designator can not.

                                   ^oldchars^replacements^



     t                           Remove all leading pathname com-
                                 ponents, leaving the tail.


     &                           Repeat  the  previous  substitu-
                                 tion.


     g                           Apply the change  to  the  first
                                 occurrence  of  a  match in each
                                 word,  by  prefixing  the  above



SunOS 5.11           Last change: 2 Nov 2007                    5






User Commands                                          history(1)



                                 (for example, g&).


     p                           Print the new command but do not
                                 execute it.


     q                           Quote  the  substituted   words,
                                 escaping further substitutions.


     x                           Like q, but break into words  at
                                 each  space  character,  tab  or
                                 newline.



     Unless preceded by a g, the modification is applied only  to
     the  first string that matches oldchars. An error results if
     no string matches.


     The left-hand side of substitutions are not regular  expres-
     sions,  but  character strings. Any character can be used as
     the delimiter in place of /. A backslash quotes  the  delim-
     iter  character. The character &, in the right hand side, is
     replaced by the text from the left-hand-side. The &  can  be
     quoted  with  a backslash. A null oldchars uses the previous
     string either from a oldchars  or  from  a  contextual  scan
     string s from !?s. You can omit the rightmost delimiter if a
     newline immediately follows replacements; the rightmost ? in
     a context scan can similarly be omitted.


     Without an event specification, a history  reference  refers
     either  to  the  previous  command, or to a previous history
     reference on the command line (if any).

  ksh
     Using fc, in the form of

       fc -e - [old=new] [command],




     or

       fc -s [old=new] [command],






SunOS 5.11           Last change: 2 Nov 2007                    6






User Commands                                          history(1)



     the command is re-executed after the substitution old=new is
     performed.  If  there  is  not  a command argument, the most
     recent command typed at this terminal is executed.


     Using fc in the form of

       fc [-e ename] [-nlr ] [first [last],




     a range of commands from first to last is selected from  the
     last  HISTSIZE commands that were typed at the terminal. The
     arguments first and last can be specified as a number or  as
     a string. A string is used to locate the most recent command
     starting with the given string. A negative number is used as
     an  offset  to the current command number. If the -l flag is
     selected, the commands are listed on standard output. Other-
     wise,  the  editor program -e name is invoked on a file con-
     taining these keyboard commands. If ename is  not  supplied,
     then  the  value of the variable FCEDIT (default /bin/ed) is
     used as the editor. When editing  is  complete,  the  edited
     command(s)  is executed. If last is not specified, it is set
     to first. If first is not specified, the default is the pre-
     vious  command  for editing and -16 for listing. The flag -r
     reverses  the  order  of  the  commands  and  the  flag   -n
     suppresses  command  numbers  when  listing. (See ksh(1) for
     more about command line editing.)

     HISTFILE    If this  variable  is  set  when  the  shell  is
                 invoked,  then  the value is the pathname of the
                 file that is used to store the command history.


     HISTSIZE    If this  variable  is  set  when  the  shell  is
                 invoked,  then  the number of previously entered
                 commands that are accessible by  this  shell  is
                 greater  than  or  equal  to  this  number.  The
                 default is 128.


  Command Re-entry:
     The text of the last HISTSIZE (default 128) commands entered
     from  a terminal device is saved in a history file. The file
     $HOME/.shhistory is used if the HISTFILE  variable  is  not
     set  or  if  the  file it names is not writable. A shell can
     access the commands of all interactive shells which use  the
     same  named HISTFILE. The special command fc is used to list
     or edit a portion of this file. The portion of the  file  to
     be  edited  or listed can be selected by number or by giving
     the first character or characters of the command.  A  single



SunOS 5.11           Last change: 2 Nov 2007                    7






User Commands                                          history(1)



     command or range of commands can be specified. If you do not
     specify an editor program as an  argument  to  fc  then  the
     value  of  the  variable  FCEDIT  is  used. If FCEDIT is not
     defined then /bin/ed  is  used.  The  edited  command(s)  is
     printed  and re-executed upon leaving the editor. The editor
     name - is used to skip the editing phase and  to  re-execute
     the  command.  In  this case a substitution parameter of the
     form old=new can be used to modify the command before execu-
     tion. For example, if r is aliased to a'fc -e - a' then typ-
     ing `r bad=good c' re-executes the most recent command which
     starts  with the letter c, replacing the first occurrence of
     the string bad with the string good.


     Using the fc built-in  command  within  a  compound  command
     causes the whole command to disappear from the history file.

  ksh93
     hist  lists,  edits,  or  re-executes  commands   previously
     entered into the current shell environment.


     The command history list references commands by number.  The
     first  number in the list is selected arbitrarily. The rela-
     tionship of a number to its command does not change during a
     login  session.  When  the  number  reaches 32767 the number
     wraps around to 1 but maintains the ordering.


     When the l option is not specified, and commands are edited,
     the  resulting  lines  are entered at the end of the history
     list and then re-executed by the  current  shell.  The  hist
     command that caused the editing is not entered into the his-
     tory list. If the editor returns  a  non-zero  exit  status,
     this suppresses the entry into the history list and the com-
     mand re-execution. Command  line  variable  assignments  and
     redirections  affect  both the hist command and the commands
     that are re-executed.


     first and last define the range of commands.  Specify  first
     and last as one of the following:

     number     A positive number representing a command  number.
                A ] sign can precede  number.


     -number    A negative number representing a command that was
                executed number commands previously. For example,
                -1 is the previous command.





SunOS 5.11           Last change: 2 Nov 2007                    8






User Commands                                          history(1)



     string     string indicates the most recently  entered  com-
                mand  that  begins with string. string should not
                contain an =.



     If first is omitted, the previous command is used, unless -l
     is  specified,  in  which  case  it defaults to -16 and last
     defaults to -1.


     If first  is  specified  and  last  is  omitted,  then  last
     defaults  to  first  unless -l is specified in which case it
     defaults to -1.


     If no editor is specified, then the editor specified by  the
     HISTEDIT  variable is used if set, or the FCEDIT variable is
     used if set, otherwise, ed is used.

OPTIONS
     The following options are supported:

     -e editor    Uses the editor named by  editor  to  edit  the
                  commands.  The editor string is a utility name,
                  subject to search via the  PATH  variable.  The
                  value  in  the  FCEDIT  variable  is  used as a
                  default when -e is not specified. If FCEDIT  is
                  null or unset, ed is used as the editor.


     -l           (The letter ell.)  Lists  the  commands  rather
                  than  invoking  an editor on them. The commands
                  is written in the  sequence  indicated  by  the
                  first  and  last  operands,  as affected by -r,
                  with  each  command  preceded  by  the  command
                  number.


     -n           Suppresses command numbers  when  listing  with
                  -l.


     -r           Reverses the order of the commands listed (with
                  -l ) or edited (with neither -l nor -s).


     -s           Re-executes the  command  without  invoking  an
                  editor.






SunOS 5.11           Last change: 2 Nov 2007                    9






User Commands                                          history(1)



  ksh93
     ksh93 supports the following options:

     -e editor    Specify the editor to use to edit  the  history
                  command.  A value of - for editor is equivalent
                  to specifying the -s option.


     -l           List the commands rather than editing  and  re-
                  executing them.


     -N num       Start at num commands back.


     -n           Suppress the command numbers when the  commands
                  are listed.


     -p           Write the result of history expansion for  each
                  operand  to  standard output. All other options
                  are ignored.


     -r           Reverse the order of the commands.


     -s           Re-execute the command without invoking an edi-
                  tor.  In  this  case  an  operand  of  the form
                  old=new can be specified to  change  the  first
                  occurrence  of the string old in the command to
                  new before re-executing the command.


OPERANDS
     The following operands are supported:

     first    Selects the commands to list or edit. The number of
     last     previous  commands  that  can be accessed is deter-
              mined by the value of the  HISTSIZE  variable.  The
              value  of  first or last or both is one of the fol-
              lowing:

              []number     A positive number representing a com-
                            mand  number.  Command numbers can be
                            displayed with the -l option.


              -number       A negative decimal number  represent-
                            ing  the  command  that  was executed
                            number of  commands  previously.  For
                            example,   -1   is   the  immediately



SunOS 5.11           Last change: 2 Nov 2007                   10






User Commands                                          history(1)



                            previous command.


              string        A string indicating the most recently
                            entered command that begins with that
                            string. If the old=new operand is not
                            also  specified  with  -s, the string
                            form of the first operand cannot con-
                            tain an embedded equal sign.

                            When the synopsis  form  with  -s  is
                            used, if first is omitted, the previ-
                            ous command is used.

                            For the synopsis forms without -s :

                                o    If  last  is  omitted,  last
                                     defaults   to  the  previous
                                     command when  -l  is  speci-
                                     fied; otherwise, it defaults
                                     to first.

                                o    If first and last  are  both
                                     omitted,   the  previous  16
                                     commands is  listed  or  the
                                     previous  single  command is
                                     edited  (based  on  the   -l
                                     option).

                                o    If first and last  are  both
                                     present, all of the commands
                                     from first to last is edited
                                     (without   -l  )  or  listed
                                     (with -l). Editing  multiple
                                     commands  is accomplished by
                                     presenting to the editor all
                                     of the commands at one time,
                                     each command starting  on  a
                                     new     line.    If    first
                                     represents a  newer  command
                                     than  last,  the commands is
                                     listed or edited in  reverse
                                     sequence,    equivalent   to
                                     using -r. For  example,  the
                                     following  commands  on  the
                                     first line are equivalent to
                                     the  corresponding  commands
                                     on the second:

                                       fc -r 10 20     fc    30 40
                                       fc   20 10      fc -r 40 30




SunOS 5.11           Last change: 2 Nov 2007                   11






User Commands                                          history(1)



                                o    When a range of commands  is
                                     used,  it is not be an error
                                     to  specify  first  or  last
                                     values  that  are not in the
                                     history list. fc substitutes
                                     the  value  representing the
                                     oldest or newest command  in
                                     the  list,  as  appropriate.
                                     For example,  if  there  are
                                     only  ten  commands  in  the
                                     history list, numbered 1  to
                                     10:

                                       fc -l
                                       fc 1 99

                                     lists  and  edits,   respec-
                                     tively, all ten commands.


              old=new       Replace  the  first   occurrence   of
                            string  old  in  the  commands  to be
                            reexecuted by the string new.



OUTPUT
     When the -l option is used to list commands, the  format  of
     each command in the list is as follows:

       "%d\t%s\n", , 



     If both the -l and -n options are specified, the  format  of
     each command is:

       "\t%s\n", 



     If the commandcommand consists of more than  one  line,  the
     lines after the first are displayed as:

       "\t%s\n", 


EXAMPLES
     Example 1 Using history and fc

                    csh                                     ksh




SunOS 5.11           Last change: 2 Nov 2007                   12






User Commands                                          history(1)



       % history                               $ fc -l
         1   cd /etc                             1   cd /etc
         2   vi passwd                           2   vi passwd
         3   date                                3   date
         4   cd                                  4   cd
         5   du .                                5   du .
         6   ls -t                               6   ls -t
         7   history                             7   fc -l

       % !d                                    $ fc -e - d
         du .                                    du .
         262   ./SCS                            262   ./SCS
         336   .                                 336   .

       % !da                                   $ fc -e - da
         Thu Jul 21 17:29:56 PDT 1994            Thu Jul 21 17:29:56 PDT 1994

       %                                       $ alias \!='fc -e -'

       % !!                                    $ !
         date                                    alias ='fc -e -'
         Thu Jul 21 17:29:56 PDT 1994


ENVIRONMENT VARIABLES
     See environ(5) for descriptions of the following environment
     variables   that  affect  the  execution  of  fc:  LCTYPE,
     LCMESAGES, and NLSPATH.

     FCEDIT      This  variable,  when  expanded  by  the  shell,
                 determines  the  default value for the -e editor
                 option's editor option-argument.  If  FCEDIT  is
                 null or unset, ed(1) is used as the editor.


     HISTFILE    Determine a pathname naming  a  command  history
                 file.  If  the HISTFILE variable is not set, the
                 shell can attempt to access  or  create  a  file
                 .shhistory in the user's home directory. If the
                 shell cannot obtain both read and  write  access
                 to,  or  create,  the  history  file, it uses an
                 unspecified mechanism that allows the history to
                 operate   properly.   (References   to   history
                 ``file'' in this section are understood to  mean
                 this  unspecified  mechanism  in such cases.) fc
                 can choose to access  this  variable  only  when
                 initializing  the history file; this initializa-
                 tion occurs when  fc  or  sh  first  attempt  to
                 retrieve  entries  from,  or add entries to, the
                 file, as the result of commands  issued  by  the
                 user,  the  file named by the ENV variable, or a
                 system startup file such as  /etc/profile.  (The



SunOS 5.11           Last change: 2 Nov 2007                   13






User Commands                                          history(1)



                 initialization  process for the history file can
                 be dependent on the  system  startup  files,  in
                 that  they can contain commands that effectively
                 preempts the user's  settings  of  HISTFILE  and
                 HISTSIZE.  For example, function definition com-
                 mands are recorded in the history  file,  unless
                 the  set  -o  nolog option is set. If the system
                 administrator includes function  definitions  in
                 some  system  startup file called before the ENV
                 file, the history file is initialized before the
                 user gets a chance to influence its characteris-
                 tics.) The variable HISTFILE  is  accessed  ini-
                 tially when the shell is invoked. Any changes to
                 HISTFILE does  not  take  effect  until  another
                 shell is invoked.


     HISTSIZE    Determine  a  decimal  number  representing  the
                 limit  to  the  number of previous commands that
                 are accessible. If this variable  is  unset,  an
                 unspecified default greater than or equal to 128
                 are used. The variable HISTSIZE is accessed ini-
                 tially when the shell is invoked. Any changes to
                 HISTSIZE does  not  take  effect  until  another
                 shell is invoked.


EXIT STATUS
     The following exit values are returned:

     0     Successful completion of the listing.


     >0    An error occurred.



     Otherwise, the exit status is that of the commands  executed
     by fc or hist.

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:












SunOS 5.11           Last change: 2 Nov 2007                   14






User Commands                                          history(1)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Availability                 SUNWcsu                     
    


SEE ALSO
     csh(1), ed(1), ksh(1),  ksh93(1),  set(1),  set(1F),  sh(1),
     source(1), attributes(5), environ(5)













































SunOS 5.11           Last change: 2 Nov 2007                   15



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™