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

fc简介

fc 命令是 fix command 的缩写,是一个内建命令,它能列出、编辑、重新执行最近在交互shell中输入的命令,你可以使用指定的编辑器编辑并运行最近输入的命令,而不需要重新输入整个命令。

fc命令的语法如下:

[root@ecs-centos-7 ~]# fc --hfc: usage: fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]

-e 选项

使用指定的编辑器编辑命令,默认是 vi 编辑器, 在下面的例子中 ls /home/tt 命令在 vi 中编辑,把 ls 改成 cd,在保存退出的时候会执行 cd /home/tt 命令, 具体的结果如下:

[root@ecs-centos-7 ~]# fc -l657 ls /home/tt658 fc -l[root@ecs-centos-7 ~]# fc -e vi 657ls /home/tt"/tmp/bash-fc-27929723442" 1L, 12C writtencd /home/tt[root@ecs-centos-7 tt]# pwd/home/tt[root@ecs-centos-7 tt]#

-l 选项

列出最近的历史命令,默认是16条

不带参数,默认显示最近的16条命令

[root@ecs-centos-7 ~]# fc -l1 date2 cd ~3 fc -l4 fc -lr5 ls /home/tt6 chage -l

显示最近的指定行数,下面的命令显示最近的3行

[root@ecs-centos-7 ~]# fc -l -34 fc -lr5 ls /home/tt6 chage -l[root@ecs-centos-7 ~]#

指定起始行号,显示从指定行号到末尾行的命令,下面的命令显示行号为530到末尾行的命令

[root@ecs-centos-7 wl]# fc -l 530530 date531 chage -l tt532 chage -h533 chage -l root534 fc -l

指定起始行号以及结束行号,显示指定行号区间的命令,下面的命令显示行号从531-534的命令

[root@ecs-centos-7 wl]# fc -l 531 534531 chage -l tt532 chage -h533 chage -l root534 fc -l

-r 选项

逆序显示历史命令,一般都是跟 -l 参数一起使用,下面是使用 -r 选项的例子。fc -l 选项显示的是从1到2行的命令。执行 fc -lr 显示的命令行数要包括前面 fc -l 的命令,所以结果会比前面多一行,执行逆序之后的行数是从3到1行, 具体的结果如下:

[root@ecs-centos-7 ~]# fc -l1 date2 cd ~[root@ecs-centos-7 ~]# fc -lr3 fc -l2 cd ~1 date[root@ecs-centos-7 ~]#

-n 选项

显示历史命令时不显示行号,一般都是跟-l参数一起使用, 下面的例子中没有显示行号

[root@ecs-centos-7 tt]# fc -l1 date2 chage -l tt[root@ecs-centos-7 tt]# fc -lndatechage -l ttfc -l[root@ecs-centos-7 tt]#

-s  选项

-s [pat=rep] [command] 把 pat 命令替换成 rep 命令并执行,下面的例子把 ls /home/tt 替换成 cd /home/tt 命令,执行成功之后,当前目录变成了 /home/tt 命令执行结果如下:

[root@ecs-centos-7 tt]# fc -l1 date2 ls /home/tt[root@ecs-centos-7 tt]# fc -s cd=ls 2ls /home/tt[root@ecs-centos-7 tt]# pwd/home/tt[root@ecs-centos-7 tt]#

小技巧

一个有用的小技巧, 使用 fc -s 'pre' 可以自动运行最近一个以 'pre' 开头的命令,输入 fc -s 命令 可以再次执行这个命令。

[root@ecs-centos-7 ~]# fc -l1 ls /home/tt2 chage -l3 date

上面是历史命令列表,执行 fc -s 'da' 命令会执行最近一个以 'da' 开头的命令,下面是具体的执行结果

[root@ecs-centos-7 ~]# fc -s 'da'dateMon Jun 29 20:26:33 CST 2020[root@ecs-centos-7 ~]# fc -s 'l'ls /home/tt[root@ecs-centos-7 ~]# fc -sls /home/tt

从上面的结果来看,执行 fc -s 'da'会执行最近一条以 'da' 开头的命令,也即 date 命令。

执行 fc -s 'l' 命令会执行最近一条以 'l' 开头的命令,也即 ls /home/tt 命令,紧接着执行 fc -s命令,会再次执行一次 ls /home/tt 命令

linux fc文件下载,Linux 下如何使用 fc 命令相关推荐

  1. linux dae文件下载,linux dae命令详解.doc

    linux dae命令详解 Linux下date命令详解 博客分类: linux Linux 脚本 SUN Unix 名称 : date 使用权限 : 所有使用者 使用方式 : date [-u] [ ...

  2. Linux 删除文件夹下部分指定数据命令

    我不希望百度搜不到这样的解决方案,本科的时候用过这么好用的命令,现在想起来要用却具体忘了,百度一搜,硬生生没有案例!我很失望,很愤怒

  3. linux将文件下载到本地windows,XSHELL下直接下载文件到本地(Windows)

    xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过. ...

  4. Linux(CentOS)下,各种协议,端口号

    Linux(CentOS)下,各种配置文件如下: DNS:cat /etc/resolv.conf 主机名:cat etc/sysconfig/network 私有主机名:cat /etc/hosts ...

  5. 列出历史命令_Linux 下如何使用 fc 命令

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

  6. 在Linux、ubuntu 11下安装无线网卡 、杂牌无线网卡、ndiswrapper的使用

    本片文章是之前在百度空间所写的(2011-10-11),由于百度空间已无法浏览.考虑本文还有一定实用性,固转载至此. 原百度链接:http://hi.baidu.com/ccboyhi/blog/it ...

  7. Linux使用SSH上传下载文件,Linux下通过ssh scp命令上传下载文件

    Linux下通过ssh scp命令上传下载文件. 1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 例如 scp /var/tale ...

  8. Linux中/proc目录下文件详解

    Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...

  9. Linux下,各种解压缩命令集合

    Linux下,各种解压缩命令集合 tar xvfj lichuanhua.tar.bz2 tar xvfz lichuanhua.tar.gz tar xvfz lichuanhua.tgz tar  ...

最新文章

  1. java虚拟机内存比例,【Java虚拟机】堆内存分配策略总结
  2. 英国研发锡钙钛矿太阳能电池更高效环保
  3. RocketMQ角色介绍
  4. Linux命令——cut命令学习
  5. Xenon构建MySQL高可用
  6. vue 圆形 水波_canvas 水滴图、液体进度条、仿加速球、圆球水波图
  7. 神通数据库最新安装教程(2021年底)
  8. ISO27001信息安全管理体系证书,系统集成行业企业还有没办的吗?
  9. 【c++学习】int main(int argc, char** argv)命令行参数理解
  10. 6目摄像头照片球面投影变换拼接全景图片
  11. php 简转繁体,php如何实现简体繁体转换
  12. 35款超赞的设计常用的英文字体
  13. 成果丰硕!SWORD 斯沃德惊艳亮相“第18届深圳名品家博会”
  14. Kotlin实战 | 语法糖,总有一颗甜到你(持续更新)
  15. 28000 mysql_MysqlERROR1698(28000)解决
  16. 导出excel时报错
  17. ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge(状压dp)
  18. 什么是数据产品,如何设计一款好用的数据产品
  19. GD32 SPI0 REMAP设置
  20. 从无人货架到无人售货柜,加了二维码就叫“新零售”吗?

热门文章

  1. linux系统读不到硬盘,window可以
  2. keyup与keydown(详解)
  3. 戴尔电脑开机花屏怎么办
  4. oracle 11g 新特性1
  5. 乘积最大【动态规划】
  6. java List截取
  7. 眉毛鼻子嘴巴等位置定位 以及相关的曲线 matlab
  8. element 控件 tabel中增加el-switch 并绑定点击事件
  9. python print end报错_python中print()函数的用法和end=不换行详解
  10. yum常见命令-安装与卸载软件