history man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

HISTORY(1)							    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 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
       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	reexe‐
       cution.	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.   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.

       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, leav‐
				   ing 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. old‐
				   chars 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  fur‐
				   ther 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 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).

   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 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.	  Oth‐
       erwise,	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 edit‐
       ing 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 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/.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 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 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  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
       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  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 precede 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 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.

   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 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  com‐
		    mand to new before re-executing the command.

OPERANDS
       The following operands are supported:

       first
       last
		Selects	 the  commands to list or edit. The number of previous
		commands that can be 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  com‐
			      mand that was executed number of commands previ‐
			      ously. For example, −1 is the immediately previ‐
			      ous 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 previous command is used.

			      For the synopsis forms without -s :

				  o	 If last is omitted, last defaults  to
					 the previous command when -l is spec‐
					 ified;	 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  present‐
					 ing 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

				  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 new‐
					 est command in the list, as appropri‐
					 ate.	For example, if there are only
					 ten commands  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				      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 unspeci‐
		   fied 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 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 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	 HIST‐
		   SIZE 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.

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

				  Nov 2, 2007			    HISTORY(1)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net