🧭说明
fc 命令是 Linux 中一个非常实用的内置命令,主要用于查看、编辑以及重新执行历史命令,能有效提升命令行操作效率。
下面的表格快速总结了它的核心功能模式。
| 功能模式 | 命令示例 | 说明 |
|---|---|---|
| 编辑后执行 | fc 或 fc 数字 | 使用默认编辑器(如vi)打开上一条或指定命令,保存后立即执行。 |
| 列出历史命令 | fc -l | 显示最近的历史命令列表,默认通常为16条。 |
| 直接重新执行 | fc -s | 不打开编辑器,直接重新执行上一条命令。 |
| 替换并执行 | fc -s old=new 数字 | 将指定命令中的字符串old替换为new后执行。 |
📝 详细用法与技巧
1. 编辑并执行命令
这是 fc 最核心的功能,特别适用于修改复杂的错误命令。
- 基本用法:直接输入
fc会使用默认编辑器(由FCEDIT环境变量定义,若无设置则通常为vi或ed)打开上一条命令。修改、保存并退出编辑器后,修改后的命令会自动执行。 - 指定命令:您可以通过命令在历史记录中的编号来编辑更早的命令。例如,
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在交互式修改复杂命令时通常更加直观和安全。
926

被折叠的 条评论
为什么被折叠?



