Linux命令-fc命令(查看、编辑以及重新执行历史命令)

🧭说明

fc 命令是 Linux 中一个非常实用的内置命令,主要用于查看、编辑以及重新执行历史命令,能有效提升命令行操作效率。

下面的表格快速总结了它的核心功能模式。

功能模式命令示例说明
编辑后执行fcfc 数字使用默认编辑器(如vi)打开上一条或指定命令,保存后立即执行。
列出历史命令fc -l显示最近的历史命令列表,默认通常为16条。
直接重新执行fc -s不打开编辑器,直接重新执行上一条命令。
替换并执行fc -s old=new 数字将指定命令中的字符串old替换为new后执行。

📝 详细用法与技巧

1. 编辑并执行命令

这是 fc 最核心的功能,特别适用于修改复杂的错误命令。

  • 基本用法:直接输入 fc 会使用默认编辑器(由 FCEDIT 环境变量定义,若无设置则通常为 vied)打开上一条命令。修改、保存并退出编辑器后,修改后的命令会自动执行。
  • 指定命令:您可以通过命令在历史记录中的编号来编辑更早的命令。例如,fc 105 会打开编号为105的命令进行编辑。
  • 指定编辑器:可以使用 -e 选项临时指定其他编辑器,例如 fc -e nano 将使用 nano 编辑器。
2. 查看历史命令列表

使用 -l 选项可以列出历史命令,功能上类似于 history 命令,但输出格式可能不同。

  • 基本列表fc -l 会列出最近的一批命令(如16条)及其编号。
  • 指定范围:可以查看特定范围内的命令。例如:
    • fc -l 570:列出从编号570开始到最新的所有命令。
    • fc -l 105 110:仅列出编号105到110的命令。
    • fc -l -3:列出最近的3条命令。
  • 控制显示
    • -n:与 -l 同用时,隐藏命令编号。例如 fc -ln
    • -r:与 -l 同用时,逆序显示列表(从新到旧)。例如 fc -lr
3. 直接重新执行命令

-s 选项提供了一种快速重新执行命令的方式,无需进入编辑器。

  • 执行上一条命令:最简单的 fc -s 会直接重新执行您刚刚运行过的命令。
  • 字符串替换:这是一个非常高效的功能。例如,您之前执行了 ls /home/tt,现在想改为 cd /home/tt,可以运行 fc -s ls=cd。这条命令会找到历史中最近一条以 “ls” 开头的命令,将其中的 “ls” 替换为 “cd” 后执行。
  • 执行特定命令fc -s 105 会直接重新执行编号为105的命令,而不会打开它进行编辑。

💡 实用技巧与场景

  • 快速执行前缀匹配的命令fc -s 'pre' 可以自动找到并执行最近一条以 ‘pre’ 开头的命令。例如,fc -s 'df' 会执行最近一条 df 命令。
  • 环境变量:可以通过设置 FCEDIT 环境变量来永久修改 fc 命令使用的默认编辑器。例如,在 ~/.bashrc 文件中添加 export FCEDIT=nano,则之后使用 fc 时会默认用 nano 打开。
  • 历史记录数量fc 能够访问的命令数量由 HISTSIZE 环境变量控制。

⚠️ 注意事项

  • fc 是一个 Shell 内置命令,这意味着它的行为在不同Shell(如 bash, zsh, ksh)中可能略有差异。
  • 在使用编辑模式时,只有在您保存并退出编辑器后,命令才会被执行。如果您中途退出编辑器(如按 Esc 后输入 :q! 退出 vi),则不会执行任何操作。
  • 与更常见的 history 命令加 !数字 的方式相比,fc 在交互式修改复杂命令时通常更加直观和安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RisunJan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值