The fc command displays, edits and re-enters commands which have been input to an interactive KornShell. fc stands for fix commands. The environment variable HISTSIZE contains the number of commands that are accessible. If HISTSIZE is not defined, 128 commands are accessible.
The shell stores these commands in a history file. When the HISTFILE environment variable is defined as the name of a writable file, the shell uses this as the history file; otherwise, the history file is $HOME/.sh_history, if HOME is defined and the file is writable. If the HOME variable is not defined, or the file is not writable, the shell attempts to create a temporary file for the history. If a temporary file cannot be created, the shell does not keep a history file.
A shell shares history (commands) with all shells that have the same history file. A login shell truncates the history file if it is more than HISTSIZE lines long.
Normally, the KornShell does not keep a history of commands executed from a profile file or the ENV file. By default, however, it begins recording commands in the history file when it encounters a function definition in either of these set-up files. This means that the HISTSIZE and HISTFILE variables must be set up appropriately before the first function definition. If you do not want the history file to begin at this time, use
set -o nolog
Any variable assignment or redirection that appears on the fc command line affects both the fc command itself and the commands that fc produces.
The first form of fc in the SYNOPSIS section puts you into an editor with a range of commands to edit. When you leave the editor, fc inputs the edited commands to the shell.
The first and last command in the range are specified with first and last. There are three ways to specify a command.
If the command specifier is an unsigned or positive number, fc edits the command with that number.
If the command specifier is a negative number -n, fc edits the command that came n commands before the current command.
If the command specifier is a string, fc edits the most recent command beginning with that string.
When you use the first form in the SYNOPSIS to edit a command, you can omit either last or both first and last. If you omit last, fc edits the single command specified by first. If you omit both, fc edits the most recent command entered to the shell.
The hist command is identical to the fc command except that when determining which editor to use, it checks the value of the HISTEDIT environment variable first, before checking the FCEDIT variable. The HISTEDIT variable is not used by fc.
invokes editor to edit the commands. If you do not specify the
-eoption, fc assumes that the environment variable FCEDIT, if defined, contains the name of the editor for fc to use. -l
displays the command list. This option does not edit or re-enter the commands. If you omit last with this option, fc displays all commands from the one indicated by first through to the most recently entered command. If you omit both first and last, fc displays the 16 most recently entered commands.
suppresses command numbers when displaying commands.
reverses the order of the commands in the command range.
re-enters exactly one command without going through an editor. If a command specifier is given, fc selects the command to re-enter as described earlier; otherwise, fc uses the last command entered. To perform a simple substitution on the command before re-entry, use a parameter of the form
The string new replaces the first occurrence of string old. fc displays the (possibly modified) command before re-entering it.
Used to store temporary files. fc uses the ROOTDIR environment variable to find the temporary directory. You can use the TMPDIR environment variable to dictate a different directory to store temporary files. See envvar for more details.
contains the path name of the default editor to be used by fc if none is specified with the
contains the path name of the default editor for the hist command. If this variable is not set, hist uses the editor indicated by the FCEDIT environment variable. Finally, if neither of these variables are set, hist uses ed to edit commands.
contains the path name of the history file.
gives the maximum number of previous commands that are accessible.
Possible exit status values are:
If you specified
-l, this indicates successful completion.
Failure due to any of the following:
An invalid command line option or argument.
When an editor invoked by fc returns a non-zero exit status, fc does not execute the commands being edited and does not enter those commands in the history file. The exit status of fc is the exit status of the editor.
When fc executes one or more commands, the exit status of fc is the exit status of the last executed command.
- Cannot create temporary file
fc must create a temporary file to do some operations like editing. It prints this message when it cannot create its temporary file, for example, because the disk is full.
- No command matches string
You asked to edit a command beginning with a particular string, but there was no such command in the history file.
POSIX.2. x/OPEN Portability Guide 4.0. Windows 2000. Windows XP. Windows Server 2003. Windows Vista. Windows 7. Windows Server 2008. Windows 8. Windows Server 2012.
This is a command built into the KornShell on UNIX systems, but not the Bourne Shell. On UNIX systems, the KornShell does not truncate the history file at login.
The fc command provided with MKS Toolkit should not be confused with the Windows fc command.
MKS Toolkit for Power Users
MKS Toolkit for System Administrators
MKS Toolkit for Developers
MKS Toolkit for Interoperability
MKS Toolkit for Professional Developers
MKS Toolkit for Enterprise Developers
MKS Toolkit for Enterprise Developers 64-Bit Edition
Using the MKS KornShell
MKS Toolkit 9.5 Documentation Build 3.