Linux 命令(242)—— fc 命令(builtin)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

1.命令简介

fcFix Command可以列出、编辑、重新执行历史命令。

fc 可以用来查看历史命令也可以利用使用指定的编辑器编辑并运行最近输入的命令而不需要重新输入整个命令。

使用 Linux 的过程中在处理很长的并且包含复杂语法的命令时如果不小心犯了一点小错误需要重新输入整个命令以及参数直到命令执行成功为止。另一种选择是使用 fc 命令编辑并重新运行前一个命令而无需重新输入整个命令以及参数。

2.命令格式

fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [cmd]

单独执行 fc 将打开默认编辑器 vim 编辑最近一条命令后然后运行。

3.参数说明

first 可选可以是字符串以该字符串开头的最新命令、数字历史列表索引用负数代表当前命令号的偏移。未指定时设置为前一个命令用于编辑设置为-16最近的16条命令用于列出。

last 可选可以是字符串以该字符串开头的最新命令、数字历史列表索引用负数代表当前命令号的偏移未指定时设置为前一个命令用于列出其他情况等于 first。

4.选项说明

-e <ename>
    选择使用的编辑器默认调用次序为环境变量 $FCEDIT$EDITOR 和编辑器 vi。
-l
    列出而不是编辑。
-n
    列出时不输出行号需配合-l选项。
-r
    倒序列出命令最近执行的先列出需配合-l选项。
-s [pat=rep] [cmd]
    命令 cmd未指定时为最后执行的命令将在 pat 替换为 rep 后重新执行。cmd 可以是字符串也可以是历史命令的序号。

5.常用示例

1使用默认编辑器编辑最近一条命令保存后立即执行。

fc

2显示历史命令列表。

默认显示最近 16 条历史命令。

fc -l
2966     echo $?
2967     cksum
2968     man cksum
2969     tput sc
2970     tput setb 6
2971     tput setf 4
2972     man tput
2973     reset
2974     man tput
2975     man terminfo
2976     man apropos
2977     hist
2978     history
2979     history 6
2980     history 6
2981     fc -l

3显示 10 条历史命令列表。

fc -l -10

# 或
fc -l -10 -1

4显示历史命令列表但不显示命令序号。

fc -ln
     fc -lr
     fc -lr -10
     fc -lr -3

5反序显示所有历史命令

fc -lr -3
2995     fc -lr -10
2994     fc -lr
2993     fc -ln

6从历史命令中往前找到 ls 命令并执行。

fc -s ls
ls -l /usr/bin/vim
-rwxr-xr-x 1 root root 2337208 Dec 16  2020 /usr/bin/vim

7编辑指定序号的命令并且执行。

fc 2992
ls -lh /usr/bin/vim
-rwxr-xr-x 1 root root 2.3M Dec 16  2020 /usr/bin/vim

8执行指定序号的命令。

fc -s 2992
-rwxr-xr-x 1 root root 2337208 Dec 16  2020 /usr/bin/vim

参考文献

fc(1) - Linux manual page - linux.org
fc(1p) - Linux manual page - man7.org

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux