Manual Page Result
0
Command: fc | Section: 1 | Source: Digital UNIX | File: fc.1.gz
fc(1) General Commands Manual fc(1)
NAME
fc - Processes the command history list
SYNOPSIS
fc [-r] [-e editor] [first[last]]
fc -l [-nr] [first[last]]
fc [-s] [old=new] [first]
STANDARDS
Interfaces documented on this reference page conform to industry stan-
dards as follows:
fc: XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about in-
dustry standards and associated tags.
OPTIONS
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 speci-
fied. If FCEDIT is null or unset, ed is used as the editor. Lists the
commands rather than invoking an editor on them. The commands are
written in the sequence indicated by the first and last parameters, as
affected by -r, with each command preceded by the command number. Sup-
presses command numbers when listing with -l. Reverses the order of
the commands listed (with -l) or edited (with neither -l nor -s). Re-
executes the command without invoking an editor.
OPERANDS
Selects the commands to list or edit. The number of previous commands
that can be accessed is determined by the value of the HISTSIZE vari-
able. The value of first or last or both is one of the following: A
positive number representing a command number; command numbers can be
displayed with the -l option. A negative decimal number representing
the command that was executed number of commands previously. For exam-
ple, -1 is the immediately previous command. 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: If last is omitted, last de-
faults to the previous command when -l is specified; otherwise,
it defaults to first. If first and last are both omitted, the
previous 16 commands are listed or the previous single command
is edited (based on the -l option). If first and last are both
present, all of the commands from first to last are 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 repre-
sents a newer command than last, the commands are listed or
edited in reverse sequence, equivalent to using -r. For exam-
ple, 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 When a range of commands is used, it is not an error
to specify first or last values that are not in the history
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 history list, numbered 1 to 10, the
following commands list and edit, respectively, all ten com-
mands:
fc -l fc 1 99
The first occurrence of string old in the commands to be reexe-
cuted is replaced by the string new.
DESCRIPTION
The fc utility lists or edits and reexecutes commands previously en-
tered to an interactive shell.
The command history list references commands by number. The first
number in the list is selected arbitrarily. The relationship of a num-
ber 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 may reset
the numbering to start the oldest retained command at another number
(usually 1). When the number reaches an upper limit, either the value
in HISTSIZE or 32767 (whichever is greater), the shell wraps the num-
bers, starting the next command with number 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 32766, 32767, 1 (wrapped), and 2 as they are executed, com-
mand 32767 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 are entered at the end of the history list and then reex-
ecuted 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 affect both the fc command itself as well as the command
that results. The following command reinvokes the previous command,
suppressing standard error for both fc and the previous command: fc -s
-- -1 2>/dev/null
NOTES
Users on windowing systems may want to have separate history files for
each window by setting HISTFILE to the following: HIST-
FILE=$HOME/.sh_hist$$
RESTRICTIONS
Since editors sometimes use file descriptors as integral parts of their
editing, redirecting their file descriptors as part of the fc command
can produce unexpected results. For example, if vi is the FCEDIT edi-
tor, the following command will not work correctly on many systems: fc
-s | more
EXIT STATUS
The following exit values are returned: Successful completion of the
listing. An error occurred.
Otherwise, the exit status is that of the commands executed by fc.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of fc: 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 is used as the editor. Determines a path name naming a com-
mand history file. If the HISTFILE variable is not set, the shell at-
tempts to access or create a file in your home directory. If the shell
cannot obtain both read and write access to, or create, the history
file, it uses a default mechanism that allows the history to operate
properly. Changes made to HISTFILE after the history file has been
initialized are not effective. If more than one instance of the shell
is using the same history file, it is unspecified how updates to the
history file from those shells interact. As entries are deleted from
the history file, they will be deleted oldest first. Determines a dec-
imal number representing the limit to the number of previous commands
that are accessible. If this variable is unset, a default of 128 is
used. Changes made to HISTSIZE after the history file has been ini-
tialized are not effective. Provides a default value for the interna-
tionalization variables that are unset or null. If LANG is unset or
null, the corresponding value from the default locale is used. If any
of the internationalization variables contain an invalid setting, the
utility behaves as if none of the variables had been defined. If set
to a non-empty string value, overrides the values of all the other in-
ternationalization variables. Determines the locale for the interpre-
tation of sequences of bytes of text data as characters (for example,
single-byte as opposed to multibyte characters in arguments and input
files). Determines the locale used to affect the format and contents
of diagnostic messages written to standard error. Determines the loca-
tion of message catalogues for the processing of LC_MESSAGES.
SEE ALSO
Commands: sh(1p)
Standards: standards(5)
fc(1)