Fix Command.
Edit and re-execute previous commands from your command history.

      fc [-e ename] [-nlr] [first] [last]

      fc -s [pat=rep] [cmd]

   -e   Editor_Name

   -n   Suppress the command numbers when listing.
   -l   List the commands to standard output.
   -r   Reverse the order of the commands.

  first String (or number) representing the first command to retrieve from history
  last  String (or number) representing the last command to retrieve from history

   pat  Pattern (string to find)
   rep  Replace (new string)
   cmd  command to retrieve from history (string or number)

First , last and cmd can be specified as a string to locate any command(s) in the history list that begin with that string.
Alternatively they can be given as a number, a numeric index into the history list.
If a negative number is given, this will be used as an offset from the current command -1= last command, -3= third last command etc.

In the first form (fc [-nlr]) a range of commands from first to last is selected from the history list.

In the second form (fc -s) command cmd from the history is re-executed, optionally after each instance of pat is replaced by rep.

Repeat = r

A useful alias to use with fc is this:
Alias r="fc -s"
With that alias in place, typing r cc will run the last command beginning with cc
typing r will repeat (re-execute) the last command.
typing r ssh will repeat the last ssh command.
typing r -3 will repeat the third last command.


If last is not specified it is set to the current command for listing (so that fc -l -10 prints the last 10 commands) and to first otherwise.
If first is not specified it is set to the previous command for editing and -16 for listing.

If the -l option is not given, the editor given by ename is invoked on a file containing those commands. If ename is not given, the value of the FCEDIT variable is used, and the value of EDITOR if FCEDIT is not set. If neither variable is set, vi is used. When editing is complete, the edited commands are echoed and executed.

Return values

If the first form is used, the return value is 0 unless an invalid option is encountered or first or last specify history lines out of range.
If the -e option is supplied, the return value is the value of the last command executed or failure if an error occurs with the temporary file of commands.
If the second form is used, the return status is that of the command re-executed, unless cmd does not specify a valid history line, in which case fc returns failure.

fc is a bash built in command.


Move the files Song-1a.mp3 and Song-2b.mp3 to the Archive directory:

$ mv Song-1a.mp3 Archive
$ fc -s 1a=2b

Execute an ls Green after fixing the typo on the seond line:

$ Alias r="fc -s"
$ ls Greeen
$ r Greeen=green ls gre

“Power tends to corrupt, absolute power corrupts absolutely” ~ Lord Acton

Related macOS commands

history - Command History.

Copyright © 1999-2024 SS64.com
Some rights reserved