# fc - 显示历史列表中的命令或修改指定的历史命令并执行
fc指令用来显示、编辑、执行历史命令。
# 主要用途
- 显示历史列表中的命令。
- 编辑并重新执行历史列表的命令。
# 适用范围
RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux
# 语法
fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [cmd]
# 选项
-l # 显示到标准输出
-n # 不显示行号
-r # 反序显示
-e # 编辑命令的文本编辑器,默认vi
-s # 找到命令并执行
# 说明
修正命令。在第一种形式中,从历史记录列表中选择从第一到最后的一系列命令。可以将“first”和“last”指定为字符串(查找以该字符串开头的最后一个命令)或作为一个数字(历史列表中的索引,其中负数用作当前命令号的偏移)。如果未指定“last”,则将其设置为当前命令。如果没有指定“first”,则将其设置为用于编辑的前一个命令,并且列出16个记录“-l 16”。
在第二种形式中,在每个PAT实例被REP替换后,重新执行命令。
如果使用第一个形式,则返回值为0,除非遇到无效选项或第一次或最后一次指定超出范围的历史记录线。如果提供了-e选项,则返回值是最后执行的命令的值,如果临时命令文件出现错误,则返回失败。如果使用第二种形式,则返回状态是重新执行的命令的状态,除非cmd没有指定有效的历史记录行,在这种情况下,fc返回失败。
# 举例
显示最后5条历史命令
[root@localhost ~]$ fc -l -5 #-l指明到标准输出,-5指明显示最后5条
51 fc -l 1 10
52 fc -l 1 4
53 fc -l 1 3
54 fc -l 0 3
55 fc -l 5
[root@localhost ~]$
显示最后5条历史命令
[root@localhost ~]$ fc -l 51 55 #将51到55条历史命令显示
51 fc -l 1 10
52 fc -l 1 4
53 fc -l 1 3
54 fc -l 0 3
55 fc -l 5
You have new mail in /var/spool/mail/root
[root@localhost ~]$
找到命令并执行
[root@localhost ~]$ fc -s ps #找到以ps开头的命令,并执行
ps
PID TTY TIME CMD
12137 pts/0 00:00:00 bash
12965 pts/0 00:00:00 ps