👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

OpenSolaris 2009.06 - man page for hist (opensolaris section 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]

   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 previously entered to an interac-
       tive sh.

       The command history list references commands by number. The first number 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  optional	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, command 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 resulting lines is
       entered at the end of the history 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 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 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
       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 history list.

       !

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

       !!

	   Refer  to the previous command. By itself, this substitution repeats the previous com-
	   mand.

       !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  refer-
	   enced 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 substitution:

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

	     !:s/previous_word/replacement/.

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

	     !:6s/previous_word/replacement/.

   Word Designators:
       A `:' (colon) separates the event specification from the word designator. 2It can be omit-
       ted 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 specifica-
       tion. 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.

       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 base-
				   name.

       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
				   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 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 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],

       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. Otherwise, the editor pro-
       gram -e name is invoked on a file containing these keyboard commands. If ename is not sup-
       plied, 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 previous command for editing
       and -16 for listing. The flag -r reverses the order of the commands and the flag  -n  sup-
       presses 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 path-
		   name 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  previ-
		   ously  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 character or characters of the command. A single
       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  com-
       mand  before  execution.  For  example,	if  r  is  aliased to a'fc -e - a' 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 disap-
       pear from the history file.

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

       The  command  history  list references commands by number. The first number 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  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  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 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 follow-
       ing:

       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 pre-
		  viously. 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 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 speci-
       fied 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 oper-
		    ands, 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.

   ksh93
       ksh93 supports the following options:

       -e editor    Specify  the editor to use to edit the history command. A value of - for edi-
		    tor 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-executing the command.

OPERANDS
       The following operands are supported:

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

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

		-number       A negative decimal number representing the command  that	was  exe-
			      cuted number of commands previously. For example, -1 is the immedi-
			      ately 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 contain 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  com-
					 mand  when  -l  is  specified; otherwise, it defaults to
					 first.

				  o	 If first and last are both omitted, the previous 16 com-
					 mands 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 rep-
					 resents  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

				  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 his-
					 tory  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 his-
					 tory 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  dis-
       played as:

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

EXAMPLES
       Example 1 Using history and fc

		      csh				      ksh

	 % 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(5)	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 understood 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 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 initialization process for the history file can  be  depen-
		   dent  on  the  system  startup  files,  in that they can contain commands that
		   effectively preempts the user's settings of HISTFILE and HISTSIZE.  For  exam-
		   ple, function definition commands are recorded in the history file, unless the
		   set -o nolog option is set. If the system administrator includes function def-
		   initions  in  some system startup file called before the ENV file, the history
		   file is initialized before the user gets a chance to influence its  character-
		   istics.)  The  variable  HISTFILE  is  accessed  initially  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 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(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWcsu			   |
       +-----------------------------+-----------------------------+

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

SunOS 5.11				    2 Nov 2007				       history(1)


All times are GMT -4. The time now is 06:52 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password





Not a Forum Member?
Forgot Password?