fc (Unix)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
fc
DevelopersVarious open-source and commercial developers
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, Unix-like
    PlatformCross-platform
    TypeCommand

    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 | edit source]

    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
    
    [edit | edit source]

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).