[ Previous | Next | Table of Contents | Index | Library Home |
Legal |
Search ]
Commands Reference, Volume 2
Processes the command history
list.
fc [ -r ] [ -e Editor ] [ First [ Last ] ]
fc -l [ -n ] [ -r ] [ First
[ Last ] ]
fc -s [ Old= New ] [ First ]
The fc command displays
the contents of your command history file or invokes an editor to modify and
reexecutes commands previously entered in the shell.
The command history file lists
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. In that case, the system resets the numbering to start the oldest
retained command at 1.
If the numbers in the command
history file reach a limit greater than the value of the HISTSIZE environment variable or 32767,
whichever is greater, the shell wraps to 1. Despite this optional
number wrapping, the fc command maintains the time-ordering
sequence of the commands. For example, if three commands in sequence
are given the numbers 32766, 32767, and 1 (wrapped), command 32767 is still
considered previous to command 1.
The commands in the history file
can be displayed using the -l (lowercase L) flag. When the
-l flag is not specified and commands are edited using the
-e Editor flag, the resulting lines are entered at the
end of the history file and then reexecuted by the shell (the fc
-e Editor command is not entered into the command history
list). If the editor returns a non-zero exit status, this suppresses
entry in the history file and command reexecution.
Any command-line variable
assignments or redirection operators used with the fc command again
invoke the previous command, suppressing standard error for both the
fc command and the previous command. For example:
fc -s -- -1 2>/dev/null
-e Editor
| Edits commands using the specified editor. The Editor
parameter should be a command name. The command is located using the
PATH environment variable. The value in the
FCEDIT environment variable is used as a default when the
-e flag is not specified. If the FCEDIT
environment variable is null or unset, the ed editor is used.
|
-l
| (lowercase L) Lists the commands in your history file. No editor
is invoked to modify them. The commands are written in the sequence
indicated by the First and Last parameters, as affected
by the -r flag, with each command preceded by the command
number.
|
-n
| Suppresses command numbers when used with the -l flag.
|
-r
| Reverses the order of the commands listed (when used with the
-l flag) or reverses the order of the commands edited (when the
-l flag is not specified).
|
-s
| Reexecutes a command without invoking an editor. If the
First parameter is not also specified, the -s flag
reexecutes the previous command.
|
First or
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 environment variable. The First and
Last parameters must have one of the following values:
- [+] Number
- Represents a specific command number. Command numbers can be
displayed with the -l flag. A + (plus sign) is the
default.
- -Number
- Represents a command that was previously executed, specified by the number
of commands to back up in the history list. For example, -1 indicates
the immediately previous command.
- String
- Indicates the most recently entered command that begins with the specified
string. If the Old=New parameter is
specified without the -s flag, the string from the First
parameter cannot contain an embedded = (equal sign).
When using the -s flag,
omission of the First parameter causes the previous command to be
used.
|
When the -s flag is not
specified, the following rules apply:
- When using the
-l flag, omission of the Last parameter causes a default
to the previous command.
- When using the
-r, -n, and -e flags, omission of the
Last parameter causes a default to the First
parameter.
- If both the
First and Last parameters are omitted, the previous 16
commands are listed or the previous single command is edited (depending on
whether or not the -l flag is used).
- If both the
First and Last parameters are present, all commands are
listed (when the -l flag is specified ) or edited (when the
-l flag is not specified). Editing multiple commands is
accomplished by presenting to the editor all the commands at one time, each
command starting on a new line. If the First parameter
represents a newer command than the Last parameter, the commands
are listed or edited in reverse sequence. This is equivalent to using
the -r flag. For example, the following commands on the
first line are equivalent to the corresponding commands on the second
line:
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. The fc command
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 commands:
fc -l
fc 1 99
list and edit, respectively, all ten commands.
Old=New
| In commands to be reexecuted, replaces the fist occurrence of the old
string with the new string.
|
The following environment
variables affect the execution of the fc command:
FCEDIT
| When expanded by the shell, determines the default value for the
-e editor variable. If the FCEDIT
environment variable is null or is not set, the ed editor is the
default.
|
HISTFILE
| Determines the path name of the command history file. If the
HISTFILE environment variable is not set, the shell may attempt to
access or create the .sh_history file in the user's
home directory.
|
HISTSIZE
| Determines a decimal number representing the limit to the number of
previous commands that are accessible. If this variable is not set, a
default value of128 is used.
|
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 the fc command.
- To invoke the editor
defined by the FCEDIT environment variable on the most recent
command (the default editor is /usr/bin/ed), enter:
fc
The command is executed when you finish editing.
- To list the previous two
commands that were executed, enter:
fc -l -2
- To find the command that
starts with cc, change foo to bar, and
display and execute the command, enter:
fc -s foo=bar cc
/usr/bin/ksh
| Contains the Korn shell fc built-in command.
|
/usr/bin/fc
| Contains the fc command.
|
The ksh command.
[ Previous | Next | Table of Contents | Index |
Library Home |
Legal |
Search ]