history man page on Solaris

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

history(1)			 User Commands			    history(1)

NAME
       history, fc - 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]]

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 will not change except when the  user  logs  in  and  no
       other process is accessing the list, at which time the system may 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 may wrap the  numbers,	 starting  the
       next  command  with  a  lower number (usually 1). However, despite this
       optional wrapping  of  numbers,	fc  will  maintain  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  exe‐
       cuted,  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 will be entered at the end of the history list and then
       reexecuted by sh. The fc command that caused the editing	 will  not  be
       entered	into  the  history list. If the editor returns a non-zero exit
       status, this will suppress the entry into the history list and the com‐
       mand  reexecution. Any command-line variable assignments or redirection
       operators used with fc will affect 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 may be  set
       to  the	maximum number of command lines that will be saved in the his‐
       tory file, that is:

       set history = 200

       will allow the history list to keep track of the most recent  200  com‐
       mand 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 may  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  character,
				       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 start‐
				       ing with str.

       !?str?			       Refer  to  the most recent command con‐
				       taining str.

       !?str? additional	       Refer to the most recent	 command  con‐
				       taining	str  and  append additional to
				       that referenced command.

       !{command} additional	       Refer to the most recent command begin‐
				       ning 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 equiva‐
				       lent to the history substitution:

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

				       !:s/previous_word/replacement/.

				       To re-execute a specific previous  com‐
				       mand and make such a substitution, 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 sec‐
       ond  !  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,  leaving
			       the head.

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

       e		       Remove all but the suffix, leaving  the	exten‐
			       sion.

       s/oldchars/replacements/Substitute  replacements for oldchars. oldchars
			       is a string that	 may  contain  embedded	 blank
			       spaces, whereas previous_word in the event des‐
			       ignator may 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 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 may 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 will be 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 will be 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 will be 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'  will re-execute 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 will cause the
       whole command to disappear from the history file.

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 will be used as the editor.

       -l	       (The letter ell.) Lists the commands rather than invok‐
		       ing  an editor on them. The commands will be 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.

OPERANDS
       The following operands are supported:

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

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

		−number		A negative  decimal  number  representing  the
				command	 that  was executed number of commands
				previously. For example, −1 is the immediately
				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
				     will be used.

				For the synopsis forms without -s :

				  ·  If last is omitted, last defaults to  the
				     previous  command	when  -l is specified;
				     otherwise, it defaults to first.

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

				  ·  If	 first	and last are both present, all
				     of the commands from first to  last  will
				     be	 edited	 (without -l ) or listed (with
				     -l). Editing multiple  commands  will  be
				     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  will  be	 listed	 or  edited in
				     reverse sequence, equivalent to using -r.
				     For  example,  the	 following commands on
				     the first line are equivalent to the cor‐
				     responding commands on the second:

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

				  ·  When a range of commands is used, it will
				     not be an error to specify first or  last
				     values  that are not in the history list.
				     fc will substitute 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

				     will list and edit, 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) will
		       be used as the editor.

       HISTFILE	       Determine a pathname naming a command history file.  If
		       the HISTFILE variable is not set, the shell may 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
		       will  use an unspecified mechanism that allows the his‐
		       tory  to	 operate  properly.  (References  to   history
		       ``file''	 in  this  section are understood to mean this
		       unspecified mechanism in such cases.) fc may choose  to
		       access this variable only when initializing the history
		       file; this initialization will  occur  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 may contain commands
		       that  will  effectively	preempt 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  will
		       be  initialized before the user gets a chance to influ‐
		       ence its characteristics.)  The	variable  HISTFILE  is
		       accessed	 initially  when  the  shell  is  invoked. Any
		       changes to HISTFILE will 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 will be used. The  variable	 HIST‐
		       SIZE  is	 accessed initially when the shell is invoked.
		       Any changes to HISTSIZE	will  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 will be that of the commands executed by fc.

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

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWcsu			   │
       └─────────────────────────────┴─────────────────────────────┘

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

SunOS 5.10			  17 Jul 2002			    history(1)
[top]

List of man pages available for Solaris

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