Linux history命令使用

来源:互联网 发布:影视制作软件app 编辑:程序博客网 时间:2024/05/18 01:37

下面是man手册的介绍:

NAME
       history - GNU History Library


COPYRIGHT
       The  GNU  History Library is Copyright (C) 1989-2011 by the Free Software Founda‐
       tion, Inc.


DESCRIPTION
       Many programs read input from the user a line at a time.  The GNU History library
       is  able  to  keep track of those lines, associate arbitrary data with each line,
       and utilize information from previous lines in composing new ones.


HISTORY EXPANSION
       The history library supports a history expansion feature that is identical to the
       history  expansion  in  bash.   This  section  describes what syntax features are
       available.


       History expansions introduce words from the history list into the  input  stream,
       making  it  easy  to  repeat commands, insert the arguments to a previous command
       into the current input line, or fix errors in previous commands quickly.


       History expansion is usually performed immediately after a complete line is read.
       It  takes place in two parts.  The first is to determine which line from the his‐
       tory list to use during substitution.  The second is to select portions  of  that
       line  for  inclusion into the current one.  The line selected from the history is
       the event, and the portions of that line that are acted upon are words.   Various
       modifiers  are  available  to  manipulate the selected words.  The line is broken
       into words in the same fashion as bash does when reading input, so  that  several
       words  that  would otherwise be separated are considered one word when surrounded
       by quotes (see the description of history_tokenize() below).  History  expansions
       are  introduced  by the appearance of the history expansion character, which is !
       by default.  Only backslash (\) and single quotes can quote the history expansion
       character.


   Event Designators
       An  event  designator is a reference to a command line entry in the history list.
       Unless the reference is absolute, events are relative to the current position  in
       the history list.


       !      Start  a history substitution, except when followed by a blank, newline, =
              or (.
       !n     Refer to command line n.
       !-n    Refer to the current command minus n.
       !!     Refer to the previous command.  This is a synonym for `!-1'.
       !string
              Refer to the most recent command preceding the  current  position  in  the
              history list starting with string.
       !?string[?]
              Refer  to  the  most  recent command preceding the current position in the
              history list 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.


   Word Designators
       Word designators are used to select desired words from the event.  A :  separates
       the  event specification from the word designator.  It may be omitted if the word
       designator begins with a ^, $, *, -, or %.  Words are numbered from the beginning
       of  the  line, with the first word being denoted by 0 (zero).  Words are inserted
       into the current line separated by single spaces.


       0 (zero)
              The zeroth word.  For the shell, this is the command word.
       n      The nth word.
       ^      The first argument.  That is, word 1.
       $      The last word.  This is usually the last argument, but will expand to  the
              zeroth word if there is only one word in the line.
       %      The word matched by the most recent `?string?' search.
       x-y    A range of words; `-y' abbreviates `0-y'.
       *      All  of the words but the zeroth.  This is a synonym for `1-$'.  It is not
              an error to use * if there is just one word in the event; the empty string
              is returned in that case.
       x*     Abbreviates x-$.
       x-     Abbreviates x-$ like x*, but omits the last word.


       If  a  word  designator  is supplied without an event specification, the previous
       command is used as the event.


   Modifiers
       After the optional word designator, there may appear a sequence of one or more of
       the following modifiers, each preceded by a `:'.


       h      Remove a trailing file name component, leaving only the head.
       t      Remove all leading file name components, leaving the tail.
       r      Remove a trailing suffix of the form .xxx, leaving the basename.
       e      Remove all but the trailing suffix.
       p      Print the new command but do not execute it.
       q      Quote the substituted words, escaping further substitutions.
       x      Quote  the substituted words as with q, but break into words at blanks and
              newlines.
       s/old/new/
              Substitute new for the first occurrence of old in  the  event  line.   Any
              delimiter  can  be used in place of /.  The final delimiter is optional if
              it is the last character of the event line.  The delimiter may  be  quoted
              in  old  and  new  with  a  single  backslash.  If & appears in new, it is
              replaced by old.  A single backslash will quote the &.  If old is null, it
              is  set  to the last old substituted, or, if no previous history substitu‐
              tions took place, the last string in a !?string[?]  search.
       &      Repeat the previous substitution.
       g      Cause changes to be applied over the entire event line.  This is  used  in
              conjunction  with `:s' (e.g., `:gs/old/new/') or `:&'.  If used with `:s',
              any delimiter can be used in place  of  /,  and  the  final  delimiter  is
              optional  if it is the last character of the event line.  An a may be used
              as a synonym for g.
       G      Apply the following `s' modifier once to each word in the event line.


有一个好用的技巧就是使用“!+ 历史命令的行号”就可以直接调用历史命令,对于经常要用的复杂的命令还是很有用的。

1 0