fc [ -r ] [ -e Editor ] [ First [ Last ] ]
生成一个以前输入的命令的列表
fc -l [ -n ] [ -r ] [ First [ Last ] ]
fc 命令显示了历史命令文件内容或调用一个编辑器去修改并重新执行以前在 shell 中输入的命令。
历史命令文件按编号列出命令。列表中的第一个编号可以任意选择linux命令。每一个命令与编号的关系不会改变,除非用户登录进系统并且没有其它进程访问过该列表。在这种情况下,系统将重新设置编号,并把余下的最老的命令编号设置为 1。
如果历史命令文件中的编号达到了一个大于 HISTSIZE 环境变量值,或是大于 32767 的极限值,不管是哪一种情况,shell 将把编号重新设为 1。尽管可选编号重新开始设置,但 fc 命令会按时间顺序维护命令序列。例如,有三个命令按照编号 32766,32767 和 1(被折返)排序,则编号 32767 的命令仍被认为在编号为 1 的命令之前。
可以使用 -l(L 的小写)标志列出历史文件中的命令。当没有使用 -l 标志并且使用了 -eEditor 标志编辑命令,其结果行将输入到历史文件的末尾并且被 shell 重新执行( fc -e Editor 命令不会被输入进历史命令列表中)。如果编辑器返回一个非零的退出状态值,这将禁止历史文件中的条目和命令重新执行。
与 fc 命令一起使用的命令行上的任何变量赋值或者重定向运算符将再一次调用前面的命令,并且抑制 fc 命令和前面的命令所产生的标准错误。示例:
fc -s -- -1 2>/dev/null
标志
-e Editor 使用指定的编辑器编辑命令linux命令。 Editor 参数应是一个命令名称。该命令用 PATH 环境变量指定位置。当没有指定 -e 标志时,环境变量 FCEDIT中的值被用作缺省值。如果环境变量 FCEDIT 是空值或没有设置,则使用 ed 编辑器。-l (L 的小写)列出了历史文件中的命令。不调用编辑器去修改它们。按照 First 和 Last 参数所指定的顺序写命令,就象-r 标志所作用的,在每一个命令的前面有一个命令编号。-n 当与 -l 标志一起使用时,隐藏命令编号。-r 逆转所列出命令的顺序(当使用 -l 标志)或者逆转所编辑的命令顺序(当没有指定 -l 标志时)。
-s 不调用编辑器重新执行一个命令。如果没有指定 First 参数,则 -s 标志重新执行前一个命令。
参数
First or Last 选择要列出或编辑的命令。HISTSIZE 环境变量值确定了能够访问到的以前所输入命令的数量。First 参数和 Last 参数必须具有下列数值中的一个:
[+] Number