FC(LINUX命令)

生活百科 2023-01-25 21:22生活百科www.aizhengw.cn

FC(LINUX命令)

FC是LINUX命令用途是处理命令历史列表,fc 命令显示了历史命令档案内容或调用一个编辑器去修改并重新执行以前在 shell 中输入的命令。

基本介绍

  • 中文名FC
  • 类型LINUX命令
  • 用途 处理命令历史列表
  • 领域计算机

语法

打开一个编辑器去修改或重新执行以前输入的命令
fc [ -r ] [ -e Editor ] [ First [ Last ] ]
生成一个以前输入的命令的列表
fc -l [ -n ] [ -r ] [ First [ Last ] ]
重新执行一个以前输入的命令
fc -s [ Old= New ] [ First ]

描述

fc 命令显示了历史命令档案内容或调用一个编辑器去修改并重新执行以前在 shell 中输入的命令。
历史命令档案按编号列出命令。列表中的第一个编号可以任意选择。每一个命令与编号的关係不会改变,除非用户登录进系统并且没有其它进程访问过该列表。在这种情况下,系统将重新设定编号,并把余下的最老的命令编号设定为 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 使用指定的编辑器编辑命令。 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
表示一个特定的命令编号。-l 标誌可以显示命令编号。预设是一个 +(加符号)字元。
-Number
表示一个以前执行的命令,由存储在历史列表中的命令编号指定。例如,-1 指出了前一个刚执行过的命令。
String
指出了最近所输入的命令,该命令以指定的字元串开头。如果指定了 Old=New 参数但没有指定 -s 标誌,则来自 First 参数的字元串中不能包含一个嵌入的 =(等于符号)。
当使用 -s 标誌时,省略 First 参数将导致使用前一个命令。
当没有指定 -s 标誌时,将套用下列规则
当使用 -l 标誌时,省略 Last 参数将会导致预设使用前一个命令。
当使用 -r、-n 和 -e 标誌时,省略 Last 参数会导致预设使用 First 参数。
如果 First 参数和 Last 参数都被省略了,则列出前 16 个命令或编辑前一个命令(取决于是否使用 -l 标誌)。
如果使用了 First 参数和 Last 参数,则列出所有的命令(当指定了 -l 标誌时)或编辑所有的命令(当没有指定 -l 标誌)。通过将所有的命令显示在编辑器中,可以实现编辑多个命令,每个命令都另起一新行。如果 First 参数表示的命令比 Last 参数表示的命令要更新的话,则命令是以相反的顺序被列出或编辑的。这与使用 -r 标誌的效果是一样的。例如,下列第一行的命令与第二行上相应的命令是等价的
fc -r 10 20 fc 30 40
fc 20 10 fc -r 40 30
当使用某一範围中的命令时,如果 First 参数或 Last 参数指定了不在历史列表的值时,这并不是一个错误。fc 命令会替换表示列表中合适的最早或最近的命令的值。例如,如果在历史列表中仅有编号从 1 到 10 的十个命令,则命令
fc -l
fc 1 99
分别列出和编辑所有这十个命令。
Old=New 在要重新执行的命令中,用新字元串去代替第一个出现的老字元串。

环境变数

下列环境变数会影响 fc 命令的执行
FCEDIT 当 shell 扩展该环境变数时,该变数确定了 -e editor 变数的预设值。如果环境变数 FCEDIT 为空值或没有被设定,则预设使用 ed 编辑器。
HISTFILE 确定历史命令档案的路径名。如果环境变数 HISTFILE 没有被设定,则 shell 可能会尝试访问或创建在用户主目录中的 .sh_history 档案。
HISTSIZE 确定一个十进制数值,该数值表示了可以访问的以前输入的命令的数量限值。如果没有设定该变数,则使用预设值 128。

退出状态

下列出口值被返回:
0 成功完成列表。
>0 发生错误。
否则退出状态是由 fc 命令执行的命令的状态。
示例 
①要对最近所使用的命令调用环境变数 FCEDIT 所定义的编辑器(预设的编辑器是 /usr/bin/ed),请输入
fc
当完成编辑之后,执行该命令。
②要列出执行过的前两个命令,请输入
fc -l -2
③要找到以 cc 字元开始的命令,且把 foo 改变为 bar,并显示和执行该命令,请输入
fc -s foo=bar cc

档案

/usr/bin/ksh 包含了 Korn shell 的内置命令 fc。
/usr/bin/fc 包含了 fc 命令。
上一篇:HANABI feat.今井麻美 下一篇:谎言×谎言

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有