Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux 下如何使用 fc 命令

Linux 下如何使用 fc 命令

原创
作者头像
Linux开发那些事儿
修改于 2021-01-06 01:30:07
修改于 2021-01-06 01:30:07
5K00
代码可运行
举报
文章被收录于专栏:Linux开发Linux开发
运行总次数:0
代码可运行

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

fc简介

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

fc命令的语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc --h
fc: usage: fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]

-e 选项

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -l
657      ls /home/tt
658      fc -l
[root@ecs-centos-7 ~]# fc -e vi 657
ls /home/tt
"/tmp/bash-fc-27929723442" 1L, 12C written
cd /home/tt
[root@ecs-centos-7 tt]# pwd
/home/tt
[root@ecs-centos-7 tt]#

-l 选项

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

  • 不带参数,默认显示最近的16条命令
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -l
1        date
2        cd ~
3        fc -l
4        fc -lr
5        ls /home/tt
6        chage -l
  • 显示最近的指定行数,下面的命令显示最近的3行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -l -3
4        fc -lr
5        ls /home/tt
6        chage -l
[root@ecs-centos-7 ~]# 
  • 指定起始行号,显示从指定行号到末尾行的命令,下面的命令显示行号为530到末尾行的命令
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 wl]# fc -l 530
530      date
531      chage -l tt
532      chage -h
533      chage -l root
534      fc -l
  • 指定起始行号以及结束行号,显示指定行号区间的命令,下面的命令显示行号从531-534的命令
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 wl]# fc -l 531 534
531      chage -l tt
532      chage -h
533      chage -l root
534      fc -l

-r 选项

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -l
1        date
2        cd ~
[root@ecs-centos-7 ~]# fc -lr
3        fc -l
2        cd ~
1        date
[root@ecs-centos-7 ~]#

-n 选项

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 tt]# fc -l
1        date
2        chage -l tt
[root@ecs-centos-7 tt]# fc -ln
         date
         chage -l tt
         fc -l
[root@ecs-centos-7 tt]#

-s 选项

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 tt]# fc -l
1        date
2        ls /home/tt
[root@ecs-centos-7 tt]# fc -s cd=ls 2
ls /home/tt
[root@ecs-centos-7 tt]# pwd
/home/tt
[root@ecs-centos-7 tt]# 

小技巧

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -l
1        ls /home/tt
2        chage -l
3        date

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-centos-7 ~]# fc -s 'da'
date
Mon Jun 29 20:26:33 CST 2020
[root@ecs-centos-7 ~]# fc -s 'l'
ls /home/tt
[root@ecs-centos-7 ~]# fc -s
ls /home/tt

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 命令(242)—— fc 命令(builtin)
fc 可以用来查看历史命令,也可以利用使用指定的编辑器编辑并运行最近输入的命令,而不需要重新输入整个命令。
恋喵大鲤鱼
2023/01/13
9090
linux笔记
目录虚拟文本控制台(虚拟终端)基本认识shell常用基本密令辅助操作ls命令 : 查看目录下信息mkdir 文件管理命令touch命令创建/更新文件cp命令: 可用于目录或文件的复制使用mv命令移动/重命名文件及目录(剪切并且可以重命名)rm命令删除文件rmdir命令删除目录(删除空目录,且必须在上级目录进行操作)find命令查找文件获取帮助vim编辑器复制,粘贴,删除操作文件内容查找(先按:进入末行模式)撤销编辑文件的保存及退出vi编辑器文件内容替换查看文件内容命令cat查看文件内容head/tail 显示文件头部信息/尾部信息grep查询字符串管道符重定向磁盘分区与系统文件挂载挂在文件系统kll -9 xxxx(进程编号) 杀死该进程卸载挂载点扩充系统的硬盘空间命令行下提高工作效率的方法文件系统的自动挂载用户和组用户管理用passwd命令管理用户登录密码usermod命令修改用户属性删除用户用于修改用户口令有效期限的chage命令chfn命令(修改用户的注释信息)修改用户Shell类型的chsh命令用户组的管理用groupadd命令创建用户组用groupmod命令修改用户组属性用groupdel命令删除用户组用gpasswd命令维护组中成员临时加入到某个组扩展知识查看用户信息的id命令:输出指定用户所在组groups命令:查看当前登录用户who am i 命令:查看当前用户w命令:查看登录用户who命令查看登录用户历史last命令文件的权限权限修改以字母的形式修改文件权限以数字形式修改权限提升用户的权限ACL规则强制位权限服务与进程的管理设置服务的自启动状态进程管理查看各进程的继承关系进程的终止进程的调度周期性调度名crontab,功能:周期性的运行指定的程序软件安装RPM包安装yum安装TAR包管理工具简介
不断折腾
2020/03/05
1.3K0
linux指令_linux最常用命令
基本命令 关机:shutdown -h halt init 0 poweroff 重启:shutdown -r reboot init 6 pwd:查看工作目录 ls:查看指定目录的内容 -l:列表显示 -a:显示所有,包括隐藏文件 -h:人性化的显示 -d:只显示目录,不查看内容 cd:切换工作目录 .:当前目录 ..:上一级目录 ~:用户家目录 -:上次切过来的目录 目录结构: linux目录与win完全不同,是从’/’开始的,只有他没有上一级目录,因此也叫根目录 详细介绍: /bin:大部分的系统命令 /boot:启动相关目录 /dev:设备文件目录,linux下一切设备皆文件 /etc:配置文件目录 /home:普通用户的家目录,一个用户对应一个文件夹 /lib:库文件 /lib64:64位库文件 /lost+found:系统异常时临时保存数据,用于恢复等操作 /media:媒体目录 /mnt:挂载目录,通用挂载点 /opt:安装系统非必须软件目录 /proc:虚拟文件系统,会映射硬件信息 /root:root用户的家目录 /sbin:超级用户才能执行的命令目录 /selinux:linux一套安全机制,非常复杂,通常不用 /srv:存放本机或本机服务器的数据或服务 /sys:类似于/proc,也是虚拟文件系统,可以映射系统信息 /tmp:临时文件,可能随时销毁 /usr:存放用户安装的应用程序 /var:系统产生的不可自动销毁的文件,如:日志、缓存等 1、vim终端编辑器 介绍:vim是对vi的扩展,被誉为终端编辑器之神 安装:yum install -y vim 工作模式:正常模式、插入模式、编辑模式 正常模式:使用vim打开文件时的默认模式 vim filename 打开文件,若文件不存在则新建 esc:切换到正常模式 shift + zz:保存退出 常用操作: vim filename +n 打开文件,定位到第n行 vim filename + 打开文件,定位到末尾 gg 定位到首行 G 定位到尾行 ngg 定位到第n行 ^ 定位到行首 $ 定位到行尾 yy 复制光标所在行 p 粘贴 nyy 复制光标开始的n行 dd 删除光标所在行 ndd 删除光标开始的n行 u 撤销操作 ctrl + r 反撤销操作 插入模式:就是可以编辑文件内容的模式,在正常模式下输入以下字符进入: i:在光标处插入 I:在行首插入 a:在光标下一个字符处插入 A:在行尾插入 o:下光标下一行插入空行 O:下光标上一行插入空行 s:删除光标所在字符并插入 S:删除光标所在行并插入 编辑模式:是对整个文件进行的操作,如:保存,退出 在正常模式下输入’:’即可进入编辑模式 :w 保存 :q 退出 :wq 保存退出,等价于 shift + zz :x 保存退出,等价于:wq :q! 强制退出 :set nu 显示行号 :set nonu 隐藏行号 :行号 定位到指定行号 /内容 查找指定内容,n下翻,N上翻 :%s/原内容/新内容 使用新内容替换原内容,全部替换 :m,ns/原内容/新内容 使用新内容替换原内容,替换m到n行 友情提醒:若非正常关闭vim,则会生成临时文件(隐藏的),需要删除 2、文件及文件夹 touch:创建普通文件 rm:删除文件,-f表示强制删除,-r表示递归删除 cp:拷贝文件,若目标目录写上文件名可以顺便把名字改了,-r可以操作目录 mv:移动文件,若目标目录写上文件名可以顺便把名字改了 mkdir:创建文件夹,-p创建中间目录 rmdir:删除文件夹,只能删除空目录 3、查看文件 cat:从上到下查看文件,全部内容 tac:从下到上查看文件,全部内容 head:查看开头的指定行内容,默认10行,head -3 1.txt tail:查看末尾的指定行内容,默认10行,tail -5 1.txt more:逐渐查看文件,回车下翻一行,空格下翻一屏,看到结尾会自动结束,q退出查看 less:逐渐查看文件,回车下翻一行,空格下翻一屏,看到结尾不会自动结束,可以上下翻 nl:功能同cat,会多显示行号 wc:统计文件信息,显示结果:行数 | 单词数 | 字节数 说明:more/less更多用法是结合管道使用,ls /etc | more 4、用户及用户组 whoami:查看当前用户 useradd:创建用户 -d:指定家目录 -u:指定用户id(uid) -g:指定所属组id(gid) -s:指定shell解释器
全栈程序员站长
2022/11/09
7280
Linux 实用指令
multi-user. target: analogous to runlevel 3
用户9615083
2022/12/25
4.3K0
Linux 实用指令
Linux 下如何修改密码有效期?
有时我们连接远程服务器的时候,提示密码过期,需要修改密码才能登录,这时可以用chage命令来调整下用户密码的有效期,使用户可以继续使用。
Linux开发那些事儿
2020/12/08
6.1K0
小说一些被忽视的Linux命令参数
今天这篇文章,就是挖出一些被忽视的参数进行了针对性的使用。咳咳,用起来还真不错,请看文章吧:
用户2196567
2020/04/14
5840
小说一些被忽视的Linux命令参数
【Linux】linux工具和命令
一、Linux安装软件: 1.源代码安装 2.rpm安装 --Linux安装包 3.yum安装 --解决安装源,安装版本,安装依赖 4.什么是软件包在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装. 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系. yum(Yellow dog Updater, Modifified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
洁洁
2023/10/10
3680
【Linux】linux工具和命令
LINUX常用100条命令总结【一】
"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
好派笔记
2021/09/13
1.8K0
Linux入门
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
xiaozhangStu
2023/08/23
2310
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
Linux命令的通用命令格式:命令字 [选项] [参数] 选项及参数的含义 选项:用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数:命令操作的对象,如文件、目录名等
青灯古酒
2023/10/16
6220
shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅
Linux养成计划(九)
本文章介绍基本的文件操作的命令,命令较多但是非常容易理解,前几篇关于Linux基础的文章可以关注此订阅号,点击底部菜单栏「技术文章」获取。话不多说,咱们开始。
用户1093975
2019/03/11
8270
Linux养成计划(九)
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息
青灯古酒
2023/10/16
4240
内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助
一.Linux基础
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
对弈
2019/09/04
1.3K0
Linux常见的命令操作
用户可利用 alias ,自定义指令的别名。若仅输入 alias ,则可以列出目前说有的别名设置。
利刃大大
2023/04/12
6970
Linux——常用命令(2)
echo 将用户输入的内容,显示在屏幕上。通常结合着“>”重定向符号,用来在文本文件中,添加数据,“>>” 表示追加。
网络豆
2023/10/17
2690
linux命令
1.ls 查看 ls -a 查看全部目录 ls -l 长格式查看目录 ls -d 显示本身属性 ls -h 以更人性化的方式显示目录和文件的大小 ls -R 以递归的方式显示目录以及目录的子目录的所有内容 ll -ls -l 2.du 显示每个文件和目录的磁盘使用空间 du -a 显示目录中个别文件的大小 du -s 只统计所占空间总和 du -h 人性化显示 3.touch 创建空文件 4.mkdir 创建空目录 mkdir -p 一次性创建嵌套 mkdir -v 显示详细信息 5.cp 复制文件或目录
互联网-小阿宇
2022/11/21
2680
linux基本命令
div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected">
对弈
2019/09/04
1.7K0
Linux | 常用命令
文件管理篇 📝显示目录内容: ls [选项] [文件] #参数: ls -a #显示所有文件以及目录 ls -l #长格式显示文件及目录、权限、大小 ls -r #按字母排序显示 ls -t #按照修改时间排序显示 ls -S #根据文件大小排序 ------------------------------------------ #例: ls -a /home #显示home目录内的文件 ls -l /home #显示home目录的权限,大小 📝查看路径: pwd [选项] #参数: pwd -L 显示
BreezeCloud
2022/10/04
6.6K0
大数据学习之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机、重启和用户登录注销+用户管理+用户组管理
2、Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/unix系统上。
黑泽君
2019/02/26
2.5K0
程序员应该掌握的一些 Linux 命令
作为一名后端开发,跟服务器的交流必不可少,刚好最近跟服务器打交道比较多,所以就汇总整理一下 Linux 下那些程序员经常需要使用的命令,掌握这些命令基本上可以在 Linux 系统里面横着走了(我明显是说大话了)
phoenix.xiao
2021/06/29
6110
推荐阅读
相关推荐
Linux 命令(242)—— fc 命令(builtin)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验