diff --git a/command/fc.md b/command/fc.md index 75b4d8fc4b..0bb3de6cd6 100644 --- a/command/fc.md +++ b/command/fc.md @@ -1,38 +1,56 @@ fc === -修改历史命令并执行 +显示历史列表中的命令或修改指定的历史命令并执行。 -## 补充说明 - -**fc命令** 自动掉用vi编辑器修改已有历史命令,当保存时立即执行修改后的命令,也可以用来显示历史命令。fc命令编辑历史命令时,会自动调用vi编辑器。fc保存文件后,会自动执行所编辑过的命令。 - -### 语法 +## 概要 ```shell -fc [-e 编辑器名] [-lnr] [起始] [终结] -fc -s [模式=替换串] [命令] +fc [-e ename] [-lnr] [first] [last] +fc -s [pat=rep] [command] ``` -### 选项 +## 主要用途 + +- 显示历史列表中的命令。 + +- 编辑并重新执行历史列表的命令。 + +## 选项 ```shell --l:显示历史命令; --n:显示历史命令时,不显示编号; --r:反序显示历史命令。 +-e ename 选择使用的编辑器,默认调用次序为环境变量`FCEDIT`、环境变量`EDITOR`、`vi`。 +-l 列出而不是编辑。 +-n 列出时不输出行号(需配合-l选项)。 +-r 倒序列出命令,最近执行的先列出(需配合-l选项)。 +-s [pat=rep] [command] command(未指定时为最后执行的命令)将在pat替换为rep后重新执行。 ``` -### 参数 +## 参数 -* 起始指令编号:指定要编辑的起始指令编号; -* 结尾指令编号:指定要编辑的结尾指令编号。 +first:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为前一个命令并且偏移量为-16(最近的16条命令)。 -### 实例 +last:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为参数first。 -使用该指令显示最近使用的10条历史命令,输入如下命令: +## 返回值 + +返回成功或执行命令的状态,当错误出现时返回非0值。 + +## 例子 + +替换命令参数: ```shell -[root@localhost ~]# fc -l -10 #显示10条历史命令 +# 列出 ~ 目录 +ls ~ +# 替换 ~ 为 / ,替换后列出根目录, +fc -s ~=/ +``` + +显示最近使用的10条历史命令: + +```shell +[root@localhost ~]# fc -l -10 1039 type -a grep 1040 export 1041 history 10 @@ -45,13 +63,18 @@ fc -s [模式=替换串] [命令] 1048 showkey -a ``` -第一列信息是历史命令的编号,第二列信息是历史命令的具体格式。若用户需要编辑第1040条历史命令时,则输入如下命令: +编辑第1040条历史命令: ```shell -fc 1040 #编辑第1040条历史命令 +[root@localhost ~]# fc 1040 ``` -命令执行成功后,将自动调用vi编辑器编辑指定的命令,编辑完成后保存,会自动执行修改后的命令。当用户在vi编辑器中修改指令并保存后,被修改的命令会被自动调用并执行。 + +### 注意 + +1. 关闭终端后,历史列表将被写入历史文件`~/.bash_history`。 +2. 环境变量`FCEDIT`的值为`fc`默认的编辑器。 +3. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。