fc

显示历史列表中的命令或修改指定的历史命令并执行。

概要

  1. fc [-e ename] [-lnr] [first] [last]
  2. fc -s [pat=rep] [command]

主要用途

  • 显示历史列表中的命令。

  • 编辑并重新执行历史列表的命令。

选项

  1. -e ename 选择使用的编辑器,默认调用次序为环境变量`FCEDIT`、环境变量`EDITOR``vi`
  2. -l 列出而不是编辑。
  3. -n 列出时不输出行号(需配合-l选项)。
  4. -r 倒序列出命令,最近执行的先列出(需配合-l选项)。
  5. -s [pat=rep] [command] command(未指定时为最后执行的命令)将在pat替换为rep后重新执行。

参数

first:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为前一个命令并且偏移量为-16(最近的16条命令)。

last:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为参数first。

返回值

返回成功或执行命令的状态,当错误出现时返回非0值。

例子

替换命令参数:

  1. # 列出 ~ 目录
  2. ls ~
  3. # 替换 ~ 为 / ,替换后列出根目录,
  4. fc -s ~=/

显示最近使用的10条历史命令:

  1. [root@localhost ~]# fc -l -10
  2. 1039 type -a grep
  3. 1040 export
  4. 1041 history 10
  5. 1042 ulimit -a
  6. 1043 shopt
  7. 1044 help ls
  8. 1045 help env
  9. 1046 help short
  10. 1047 help shopt
  11. 1048 showkey -a

编辑第1040条历史命令:

  1. [root@localhost ~]# fc 1040

注意

  1. 关闭终端后,历史列表将被写入历史文件~/.bash_history
  2. 环境变量FCEDIT的值为fc默认的编辑器。
  3. 该命令是bash内建命令,相关的帮助信息请查看help命令。