fc (Unix)
| fc | |
|---|---|
| Developers | Various open-source and commercial developers |
| Operating system | Unix, Unix-like |
| Platform | Cross-platform |
| Type | Command |
fc (short for fix command[1]) is a shell command that lists, edits and re-executes commands previously entered in the shell. It is particularly helpful for editing complex, multi-line commands. Originally developed for Unix and standardized by POSIX, the command is available in many operating systems today.
As it is required to be "intrinsic" by POSIX,[2] it is implemented as a builtin in the Bash, Zsh, and Almquist shells.
Invoked with no options, the command opens a text editor, allowing the user to modify the last-run command. Upon exiting the editor, the modified command is executed in the current shell.[3] The editor used can be specified with the -e option; otherwise it is read from the FCEDIT environment variable,[4] or, in some shells, EDITOR,[5][6][7] with a fallback to vi or ed. Command-line options allow for quick substitution, repetition or modification of a specific command from the session history, or a range of commands from the history.
Examples
[edit]When invoked with the -l option, the command lists recent lines from the session history:
$ fc -l
1 pwd
2 whoami
3 ls
4 ls -a
When invoked with -s PATTERN, the command re-runs the most recent command matching PATTERN:
$ fc -s ls
ls -a
. .. .bash_logout .bashrc .profile
Option -s enables inline substitution. For example, consider that the last command ls floder contains a typo. The following command runs the last command with "flod" replaced with "fold":
$ fc -s flod=fold
ls folder
It is also possible to edit and re-invoke a range of commands from the history. Often, one lists commands first like:
$ fc -l
1 pwd
2 whoami
3 ls
4 ls -a
5 ls -la
Then, to run the commands identified as 1 and 2:
$ fc 1 2
pwd
/home/user
whoami
user
External links
[edit]- : process the command history list – Shell and Utilities Reference, The Single UNIX Specification, Version 5 from The Open Group
See also
[edit]References
[edit]- ^ "IEEE Std 1003.1-2024 - fc § Rationale". pubs.opengroup.org. Retrieved 2025-04-22.
- ^ "The Open Group Base Specifications Issue 8 (IEEE Std 1003.1-2024) - fc § Application Usage". pubs.opengroup.org. Retrieved 2025-04-22.
- ^ "Fix history: Edit the last bash command". 5 January 2020.
- ^ "IEEE Std 1003.1-2024 - fc § Environment Variables". pubs.opengroup.org. Retrieved 2025-04-22.
- ^ "Bash History Builtins (Bash Reference Manual)". www.gnu.org. Retrieved 2025-04-22.
- ^ "The Z Shell Manual § 15.6 Parameters Used By The Shell". zsh.sourceforge.io. Retrieved 2025-04-22.
- ^ "dash FreeBSD manual page § "Builtins"". man.freebsd.org. Retrieved 2025-04-22.