history(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

history(1)

history(1)                       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]

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


       fc -s [old = new] [command]


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

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

DESCRIPTION
   /usr/bin/fc
       The  fc  utility lists or edits and reexecutes, commands previously en‐
       tered to an interactive sh.


       The command history list references commands by number. The first  num‐
       ber  in  the list is selected arbitrarily. The relationship 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 op‐
       tional wrapping of numbers, fc maintains the time-ordering sequence  of
       the  commands.  For example, 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.


       When commands are edited (when the -l option is not specified), the re‐
       sulting lines is entered at the end of the history list and then reexe‐
       cuted 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 operators 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 simplifies spelling cor‐
       rections and the repetition of complicated commands or arguments.  Com‐
       mand  lines  are  saved  in the history list, the size of which is con‐
       trolled by the history variable. The history shell variable can be  set
       to  the  maximum  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  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 substitutions take place or
       the command gets executed.

   Event Designators:
       An event designator is a reference to a command line entry in the  his‐
       tory list.

       !

           Start a history substitution, except when followed by a space char‐
           acter, tab, newline, = or (.


       !!

           Refer to the previous command. By itself, this substitution 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 addi‐
           tional to that referenced command.


       !{command} additional

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


       ^previous_word^replacement^

           Repeat the previous command line replacing the string previous_word
           with the string replacement. This is equivalent to the history sub‐
           stitution:

           Repeat the previous command line replacing the string previous_word
           with the string replacement. This is equivalent to the history sub‐
           stitution:


             !:s/previous_word/replacement/.

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

             !:6s/previous_word/replacement/.



   Word Designators:
       A  ':' (colon) separates the event specification from the word designa‐
       tor. It can be omitted if the word designator begins with a ^, $, *,  −
       or %. If the word is to be selected from the previous command, the sec‐
       ond  !  character  can be omitted from the event specification. For in‐
       stance, !!:1 and !:1 both refer to the first word of the previous  com‐
       mand, while !!$ and !$ both refer to the last word in the previous com‐
       mand. 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.


       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 component, leaving the head.


       r

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


       e

           Remove all but the suffix, leaving the extension.


       s/oldchars/replacements/

           Substitute replacements for oldchars. oldchars is a string that can
           contain  embedded  blank spaces, whereas previous_word in the event
           designator can not.

             ^oldchars^replacements^



       t

           Remove all leading pathname components, leaving the tail.


       &

           Repeat the previous substitution.


       g

           Apply the change to the first occurrence of a match in  each  word,
           by prefixing the above (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 new‐
           line.



       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 expressions, but
       character strings. Any character can be used as the delimiter in  place
       of  /.  A backslash quotes the delimiter 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 fol‐
       lows 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).

   ksh88
       Using fc, in the form of

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



       or

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



       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 HIST‐
       SIZE 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  nega‐
       tive  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 containing 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  speci‐
       fied, it is set to first. If first is not specified, the default is the
       previous  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 ksh88(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  his‐
           tory.


       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/.sh_history
       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 char‐
       acter  or  characters of the command. A single command or range of com‐
       mands 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 execution. For example, if r is aliased to 'fc  -e  − '
       then typing '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.

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


       The command history list references commands by number. The first  num‐
       ber  in  the list is selected arbitrarily. The relationship 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 re‐
       sulting 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 history list. If the editor returns a non-zero
       exit status, this suppresses the entry into the history  list  and  the
       command  re-execution.  Command  line variable assignments and redirec‐
       tions affect both the hist command and the commands  that  are  re-exe‐
       cuted.


       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  pre‐
           cede number.


       -number

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


       string

           string indicates the most recently entered command that begins with
           string. string should not contain an =.



       If first is omitted, the previous command is used, unless -l is  speci‐
       fied, 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, other‐
       wise, 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 edi‐
           tor.


       -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 pre‐
           ceded 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.


   ksh
       ksh 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 editor. 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-exe‐
           cuting the command.


OPERANDS
       The following operands are supported:

       first
       last

           Selects  the  commands to list or edit. The number of previous com‐
           mands that can be accessed is determined by the value of the  HIST‐
           SIZE  variable.  The  value  of first or last or both is one of the
           following:

           [+]number

               A positive number representing a command number.  Command  num‐
               bers can be displayed with the -l option.


           −number

               A negative decimal number representing the command that was ex‐
               ecuted  number  of  commands previously. For example, −1 is the
               immediately previous command.


           string

               A string indicating the most recently entered command that  be‐
               gins with that string. If the old=new operand is not also spec‐
               ified 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 previous command is used.

               For the synopsis forms without -s:

                   o      If last is omitted, last defaults  to  the  previous
                          command when -l is specified; 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  com‐
                          mands from first to last is edited (without -l  ) or
                          listed  (with  -l). Editing multiple commands is ac‐
                          complished 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 se‐
                          quence, 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



                   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 repre‐
                          senting the oldest or newest command in the list, as
                          appropriate. For example, if there are only ten com‐
                          mands in the history list, numbered 1 to 10:


                            fc -l
                            fc 1 99

                          lists and edits, respectively, 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", <line number>, <command>



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

         "\t%s\n", <command>



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

         "\t%s\n", <continued-command>


EXAMPLES
       Example 1 Using history and fc




                      csh                                     ksh88

         % 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   ./SCCS                            262   ./SCCS
           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(7) for descriptions of the following environment  variables
       that affect the execution of fc: LC_CTYPE, LC_MESSAGES, 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  .sh_history 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 under‐
           stood to mean this unspecified mechanism in  such  cases.)  fc  can
           choose  to  access this variable only when initializing the history
           file; this initialization occurs when fc or sh first attempt to re‐
           trieve 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 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  commands  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 characteristics.) The variable HISTFILE is
           accessed initially when the shell is invoked. Any changes to  HIST‐
           FILE 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 initially 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.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Availabilitysystem/core-os


SEE ALSO
       csh(1),  ed(1),  ksh(1),  ksh88(1),  set(1),  sh(1), source(1), attrib‐
       utes(7), environ(7)

Oracle Solaris 11.4               12 Jul 2011                       history(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3