Linux系统之fc命令的基本使用

news2024/9/16 7:50:50

Linux系统之fc命令的基本使用

  • 一、fc命令介绍
    • 1.1 fc命令简介
    • 1.2 fc命令用途
  • 二、fc命令的帮助信息
    • 2.1 fc的man帮助
    • 2.2 fc命令的使用帮助
    • 2.3 fc命令与history命令区别
  • 三、fc命令的基本使用
    • 3.1 显示最近执行的命令
    • 3.2 指定序号查询历史命令
    • 3.3 使用vim编辑第n条历史命令
    • 3.4 替换上次执行命令的某个字符串
  • 四、fc命令的注意事项
  • 五、总结

在这里插入图片描述

一、fc命令介绍

1.1 fc命令简介

fc命令是一个非常实用的命令,可以帮助我们查找、编辑和执行历史命令。

1.2 fc命令用途

  • 显示历史列表中的命令。

  • 编辑并重新执行历史列表的命令。

二、fc命令的帮助信息

2.1 fc的man帮助

《man手册》(Manual pager documentation)是Unix-like操作系统中的一种在线帮助工具,用于浏览和搜索命令行程序的手册页(man page)。它由Brian Kernighan和Dennis Ritchie于1971年创造,被广泛应用于各种Unix和类Unix系统上。执行以下命令,我们查询man手册中fc帮助信息。

man fc

在这里插入图片描述

2.2 fc命令的使用帮助

  • 选项
-e ename                  选择使用的编辑器,默认调用次序为环境变量`FCEDIT`、环境变量`EDITOR``vi`-l                        列出而不是编辑。
-n                        列出时不输出行号(需配合-l选项)。
-r                        倒序列出命令,最近执行的先列出(需配合-l选项)。
-s [pat=rep] [command]    command(未指定时为最后执行的命令)将在pat替换为rep后重新执行。
-t <历史命令编号>:执行历史命令编号指定的命令,但不将其添加到历史记录中。
  • 参数
first:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为前一个命令并且偏移量为-16(最近的16条命令)。

last:可选;可以是字符串(以该字符串开头的最新命令)、数字(历史列表索引,负数代表当前命令号的偏移);未指定时设置为参数first。

2.3 fc命令与history命令区别

history命令偏向于查看和检索历史命令,而fc命令则在查看的基础上增加了编辑和即时执行的功能,更加灵活强大,适用于需要对历史命令进行细致操作的场景。

三、fc命令的基本使用

3.1 显示最近执行的命令

使用-l 选项,列出最近执行的命令,默认是查询最近执行的16条命令。

[root@jeven ~]# fc -l
986	 systemctl status httpd
987	 systemctl stop firewalld && systemctl disable firewalld
988	 cd /var/www/html/
989	 ls\
990	 ls
991	  git clone https://github.com/gd4Ark/star-battle.git
992	 ls
993	 unzip star-battle-master.zip
994	 ls
995	 mv star-battle-master star-battle
996	 ls
997	 tree -L 1 star-battle
998	 tree -L 2 star-battle
999	 systemctl restart httpd
1000	 ls
1001	 fc -l 12

倒序查看,加上-r选项。

[root@jeven ~]# fc -l -r
1002	 fc -l
1001	 fc -l 12
1000	 ls
999	 systemctl restart httpd
998	 tree -L 2 star-battle
997	 tree -L 1 star-battle
996	 ls
995	 mv star-battle-master star-battle
994	 ls
993	 unzip star-battle-master.zip
992	 ls
991	  git clone https://github.com/gd4Ark/star-battle.git
990	 ls
989	 ls\
988	 cd /var/www/html/
987	 systemctl stop firewalld && systemctl disable firewalld

3.2 指定序号查询历史命令

在-l选项后面,加上开始序号和结束序号,查看这个区间的历史执行命令。

[root@jeven ~]# fc -l 500 510
500	 ls
501	 cd
502	 docker run -itd --name test01 -h con01 --network=bridge centos:7.6
503	 docker run hello-world
504	 sudo systemctl daemon-reload  && systemctl restart docker
505	 sudo echo aa > test.aa
506	 ls
507	 docker  ps
508	 docker run -itd --name test01 -h con01 --network=bridge centos:7.6
509	 docker run -itd --name test01 -h con01 --network=bridge centos:7
510	 docker ps

3.3 使用vim编辑第n条历史命令

查询最后一次执行的命令为 ls /tmp

[root@jeven ~]# ls /tmp
clr-debug-pipe-8964-1534-in
clr-debug-pipe-8964-1534-out
dotnet-diagnostic-8964-1534-socket
systemd-private-0d92e915344242af95072eb065c418ab-bolt.service-3CqP86
systemd-private-0d92e915344242af95072eb065c418ab-chronyd.service-zOEnpD
systemd-private-0d92e915344242af95072eb065c418ab-colord.service-jUk2sY
systemd-private-0d92e915344242af95072eb065c418ab-cups.service-3eUtDi
systemd-private-0d92e915344242af95072eb065c418ab-httpd.service-NGOJRE
systemd-private-0d92e915344242af95072eb065c418ab-rtkit-daemon.service-5mnV6w
vmware-root_8987-3852964261
[root@jeven ~]# fc -l
990	 ls
991	  git clone https://github.com/gd4Ark/star-battle.git
992	 ls
993	 unzip star-battle-master.zip
994	 ls
995	 mv star-battle-master star-battle
996	 ls
997	 tree -L 1 star-battle
998	 tree -L 2 star-battle
999	 systemctl restart httpd
1000	 ls
1001	 fc -l 12
1002	 fc -l
1003	 fc -l -r
1004	 fc -l 500 510
1005	 ls /tmp

使用-e选项,编辑第1005序号的历史命令ls /tmp,修改为cd /tmp ,退出编辑时,会自动执行编辑后的历史命令。

[root@jeven ~]# fc -e vim 1005
cd /tmp
[root@jeven tmp]#

在这里插入图片描述

3.4 替换上次执行命令的某个字符串

使用-s选项,将上一条命令中的old字符串替换为new字符串,并执行替换后的命令。

[root@jeven ~]# fc -s ls=cd
cd /tmp
[root@jeven tmp]#

在这里插入图片描述

四、fc命令的注意事项

  • fc命令默认使用vi编辑器,如果需要使用其他编辑器,如nano、emacs等,可以在命令中添加-e选项,如fc -e nano。

  • fc命令默认编辑并执行上一条命令,如果需要编辑并执行其他历史命令,可以在命令中添加数字参数,如fc 123可以编辑并执行历史命令号为123的命令。

  • fc命令可以用来执行之前执行过的命令,但是它不能修改已经执行过的命令。如果需要修改已经执行过的命令,可以使用其他编辑器命令如sed、awk等。

  • 当使用fc命令时,需要确保执行过的命令的历史记录已经被保存在命令历史记录文件中。如果历史记录文件被删除或禁用了命令历史记录功能,fc命令将无法正常使用。

  • 在编辑完命令后,需要保存文件并退出编辑器才能执行命令。

  • fc命令可以使用很多选项来执行不同的操作,例如-l选项可以列出命令历史记录,-n选项可以输出编辑后的命令,但是这些选项只能在使用了-e选项后才能使用。

五、总结

fc命令在Linux中提供了一种便捷的方式来回顾、修改并立即重新执行历史命令,通过直接跳转到文本编辑器的交互式体验,提升了命令行操作的灵活性和效率,尤其适合于调试复杂数步操作或重复使用已有命令片段的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1795068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

openh264 自适应量化功能源码分析

openh264 OpenH264是一个开源的H.264/AVC视频编解码器&#xff0c;由Cisco公司发起并贡献了最初的代码基础。它提供了一个用于视频编码和解码的库&#xff0c;支持H.264视频压缩标准&#xff0c;广泛应用于视频会议、流媒体和视频存储等领域。OpenH264是实现H.264编解码功能的…

关于vue2 antd 碰到的问题总结下

1.关于vue2 antd 视图更新问题 1.一种强制更新 Vue2是通过用Object…defineProperty来设置数据的getter和setter实现对数据和以及视图改变的监听的。对于数组和对象这种引用类型来说&#xff0c;getter和setter无法检测到它们内部的变化。用这种 this.$set(this.form, "…

T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy论文解读

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、引言二、文献综述1. Text-prompted Object Detection2. Visual-prompted Object Detection3. Interactive Object Detection 三、模型方法1. Visual-Text P…

在vscode 中使用npm的问题

当我装了 npm和nodejs后 跑项目在 文件中cmd的话可以直接运行但是在 vscode 中运行的时候就会报一下错误 解决方法就是在 vscode 中吧 power shell换成cmd 来运行就行了

JVM相关:Java内存区域

Java 虚拟机&#xff08;JVM)在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。 Java运行时数据区域是指Java虚拟机&#xff08;JVM&#xff09;在执行Java程序时&#xff0c;为了管理内存而划分的几个不同作用域。这些区域各自承担特定的任务&#xff0c…

知攻善防应急

知攻善防应急靶场一 小李在值守的过程中&#xff0c;发现有 CPU 占用飙升&#xff0c;出于胆子小&#xff0c;就立刻将服务器关机&#xff0c;并找你帮他分析&#xff0c;这是他的服务器系统&#xff0c;请你找出以下内容&#xff0c;并作为通关条件&#xff1a; 1.攻击者的 …

今日增长工具精选| 8个SaaS出海必备运营工具

一、SurveyMonkey 是一个灵活、方便、经济实惠的在线调查工具&#xff0c;可以通过自行设计定制化问卷&#xff0c;开展消费者调研&#xff0c;收集第一手数据&#xff0c;获取用户反馈。 客户涵盖财富100强公司以及其他不同规模和类型的组织&#xff0c;如公司、学术研究机构…

第二十六章CSS3续~

3.CSS3渐变属性 CSS3渐变(gradients)可以在两个或多个指定的颜色之间显示平稳的过渡。 以前&#xff0c;我们必须使用图像来实现这些效果。但是&#xff0c;通过使用CSS3渐变(gradients)&#xff0c;可以减少下载的事件和宽带的使用。由于渐变(gradient)是由浏览器生成的&…

首个文字生成手语模型来了!SignLLM通过文字描述来生成手语视频,目前已经支持八国手语!

SignLLM 是目前第一个通过文字描述生成手语视频的多语言手语模型。 该项目引入了首个多语言手语数据集 Prompt2Sign&#xff0c;它使用工具自动采集和处理网络上的手语视频&#xff0c;能够不断更新&#xff0c;且具有轻量化特点。 该模型当前支持 8 种手语类型。包括美国手语…

软件管理、rpm安装、yum安装、源码编译安装

目录 一、Windows安装/卸载 二、软件的卸载&#xff1a; 三、Linux的软件安装和卸载 3.1rpm安装 第一步&#xff1a;挂在光盘 第二步&#xff1a;查看/mnt 第三步&#xff1a;切换到/mnt/Packages 第四步&#xff1a;安装 3.2yum安装&#xff08;使用关盘作为yum源&…

29 - 买下所有产品的客户(高频 SQL 50 题基础版)

29 - 买下所有产品的客户 selectc.customer_id fromCustomer c group byc.customer_id havingcount(c.product_key)(select count(distinct product_key) from Product);

java版知识付费saas租户平台:剖析现代知识付费平台的功能架构与运营逻辑

在数字化学习的时代背景下&#xff0c;知识付费平台已经成为教育行业的一颗璀璨明星&#xff0c;以其用户需求为中心&#xff0c;提供便捷高效的学习途径。这些平台汇聚了众多专业知识&#xff0c;覆盖职业技能、生活兴趣和人文社科等多个领域&#xff0c;满足不同用户的学习需…

TikTok运营必看|7大广告类型及特点

TikTok广告是品牌或创作者付费向特定目标受众展示的推广内容&#xff08;通常是全屏视频&#xff09;。TikTok 上的广告是一种社交媒体营销形式&#xff0c;通常旨在提高广告商的知名度或销售特定产品或服务。 就 TikTok广告投放而言&#xff0c;其组织层级分为三个层级&#x…

【成品设计】基于红外线的目标跟踪无线测温系统设计

《基于红外线的目标跟踪无线测温系统设计》 整体功能&#xff1a; A端&#xff1a;无线跟踪端 主控&#xff1a;采用STM32F103C8T6单片机作为核心控制。360度编码模块数字脉冲输出红外解码编码模块OLED屏幕。 B端&#xff1a;无线待测端 主控&#xff1a;采用STM32F103C8T…

深入了解静态IP:基础知识与原理(固定IP地址解析)

在今天的数字化世界中&#xff0c;互联网连接已成为我们日常生活和工作中不可或缺的一部分。而在网络连接中&#xff0c;IP地址起着至关重要的作用。其中&#xff0c;静态IP地址因其独特的性质而备受关注。本文将深入探讨静态IP的基础知识、与动态IP的区别、工作原理以及为什么…

大模型创新企业集结!百度智能云千帆AI加速器Demo Day启动

新一轮技术革命风暴席卷而来&#xff0c;为创业带来源源不断的创新动力。过去一年&#xff0c;在金融、制造、交通、政务等领域&#xff0c;大模型正从理论到落地应用&#xff0c;逐步改变着行业的运作模式&#xff0c;成为推动行业创新和转型的关键力量。 针对生态伙伴、创业…

腾讯云Edgeone为我的网站保驾护航

文章目录 前言边缘安全加速平台介绍模拟网站被攻击攻击脚本攻击脚本执行 网站快速接入 EdgeOne前提条件&#xff08;注意事项&#xff09;添加站点添加加速域名 EdgeOne 防护效果EdgeOne 体验感受总结 前言 众所周知&#xff0c;网站如果没有安全防护&#xff0c;极易遭受恶意…

inBuilder 低代码平台新特性推荐 - 第二十期

今天来给大家带来的是 inBuilder 低代码平台特性推荐系列第二十期——菜单导航模式个性化示例。 场景介绍 目前平台提供了四种菜单导航模式&#xff0c;包括分组视图、列表视图、横向视图、平铺视图&#xff0c;均为横向导航&#xff0c;这些也是主流的菜单导航模式。 在某些…

UML实现图-组件图

概述 组件图(ComponentDiagram)描述了软件的各种组件和它们之间的依赖关系。组件图中通常包含4种元素:组件、程序、包、任务&#xff0c;各个组件之间还可以相互依赖。 一、组件的表示法 组件是定义了良好接口的物理实现单元&#xff0c;是系统中可替换的物理部件。在一般情…

JAVA-学习-2

一、类 1、类的定义 把相似的对象划分了一个类。 类指的就是一种模板&#xff0c;定义了一种特定类型的所有对象的属性和行为 在一个.java的问题件中&#xff0c;可以有多个class&#xff0c;但是智能有一个class是用public的class。被声明的public的class&#xff0c;必须和文…