> 环境与工具 > fc

fc: 编辑和重新执行 shell 历史命令

`fc` 命令用于编辑或重新执行 shell 历史记录中的命令。它在修改和重新运行之前执行的复杂命令时非常有用,也可用于 shell 脚本编写。

概述

`fc` 是 'fix command' 的缩写,它允许您选择 shell 历史记录中的特定命令,并在默认编辑器中打开它们,或者在不进行编辑的情况下立即重新执行它们。这可以节省重复工作或纠正拼写错误的时间。

主要功能

  • 编辑 shell 历史命令
  • 无需编辑即可重新执行历史命令
  • 选择和处理特定范围的命令
  • 可指定默认编辑器

主要选项

`fc` 命令提供了各种选项来控制历史记录的处理方式。

操作控制

生成的命令:

请尝试组合命令。

描述:

`fc` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 `fc` 命令的各种使用示例,您可以学习如何管理历史记录和重新执行命令。

编辑并重新执行最近的命令

fc

在默认编辑器(通常是 `vi`)中打开最近执行的命令,修改后保存,该命令将被重新执行。

使用特定编辑器编辑最近的命令

fc -e nano

使用 `nano` 编辑器编辑并重新执行最近的命令。

查看最近 5 条命令列表

fc -l -5

输出最近执行的 5 条命令列表,并附带编号。

编辑特定范围的命令

fc 100 105

在编辑器中打开历史记录编号 100 到 105 的命令,修改后重新执行。

重新执行先前命令(无需编辑)

fc -s

无需调用编辑器即可立即重新执行最近执行的命令。`-s` 选项会抑制编辑器调用。

重新执行以特定字符串开头的命令

fc -s ssh

查找并无编辑地重新执行以 `ssh` 开头的最近命令。

替换先前命令中的字符串后重新执行

fc -s old_string=new_string

将最近命令中的 'old_string' 替换为 'new_string' 后重新执行。这类似于 `^old_string^new_string^` 的快捷键。

提示与注意事项

有助于更高效、安全地使用 `fc` 命令的提示和注意事项。

设置默认编辑器

可以通过设置环境变量 `$FCEDIT` 或 `$EDITOR` 来指定 `fc` 使用的默认编辑器。

  • 示例: export FCEDIT=nano
  • 优先级: `$FCEDIT` 的优先级高于 `$EDITOR`。

检查历史记录编号

您可以使用 `history` 命令查看当前 shell 的历史记录列表以及每个命令的编号。这在 `fc` 中指定特定命令时很有用。

安全地重新执行

特别是对于包含管道符 `|` 或重定向符 `>`、`>>` 的复杂命令,最好先使用 `fc` 打开编辑器检查和修改命令,然后再执行。`fc -s` 会立即执行而无需编辑过程,请谨慎使用。


相同类别命令