作为负责服务器、发布流水线、监控告警和故障处理的运维或 SRE,你可能也有同感:告警多、脚本杂、变更文档和故障复盘写起来费时,夜间排障时更需要快速理清思路。命令行效率高,但参数难记,一个写错的命令还可能造成不可挽回的后果。本文给出运维工程师用 AI 写命令行命令的一套可直接照抄的做法:用自然语言描述目标和环境,让 AI 生成命令并逐个解释参数,危险操作先用只读或演练方式验证。

典型场景

运维工程师需要在服务器或自己电脑上批量处理文件,比如找出最近 7 天修改过的大文件、统计日志里的错误数量、批量压缩备份。命令记不住,每次都要搜索。对运维工程师来说,这类需求往往和“把发布流水线的构建时间缩短约三分之一”“演练数据库主从切换”这些事挤在同一周,留给它的时间并不多。

用什么工具

可以用对话助手(ChatGPT、Claude、DeepSeek 等),也可以用终端里的 AI 工具,例如 GitHub Copilot CLI、Warp 等终端的 AI 功能。

举个例子

设想一个虚构场景:安琪刚接手一部分新工作,既要完成“完成两台数据库服务器的磁盘扩容”,又要准备“清理无主的云资源”。面对需要写命令行命令的任务,安琪的做法是:先让 AI 按固定结构起草,再对照自己掌握的事实逐项修改,涉及服务器 IP、账号口令、证书私钥和内部拓扑的部分一律用代号替换。这样既节省了时间,也守住了准确性和隐私的底线。

具体怎么做

  1. 说明操作系统和 Shell,例如 Ubuntu 的 bash 或 macOS 的 zsh
  2. 描述目标和范围,例如哪个目录、哪类文件
  3. 要求 AI 逐个解释参数
  4. 确认无误后再执行,必要时先备份

提示词模板(可直接复制)

把方括号和括号里的内容换成你自己的信息即可:

【背景】身份:负责服务器、发布流水线、监控告警和故障处理的运维或 SRE;平时主要和开发团队和技术负责人打交道。
环境:Ubuntu 22.04,bash
我是运维工程师,需要处理 /data/主机组_files 目录下的文件。

请给出命令:
1. 找出最近 7 天修改过、大于 100MB 的文件,按大小排序显示
2. 统计 /var/log/app 目录下所有 .log 文件中包含“ERROR”的行数,按文件分别显示
3. 把 30 天前的 .log 文件打包压缩到 /backup,打包成功后再删除原文件

要求:逐个解释参数;第 3 个命令请先给出只列出文件、不删除的演练版本。

示例输出(仅供示意)

下面是演示用的输出示例,其中的人名、数字和事项均为虚构,实际使用时请以你自己的资料为准:

1. 查找大文件

find /data/主机组_files -type f -mtime -7 -size +100M -exec ls -lh {} + | sort -k5 -h
  • -mtime -7:7 天内修改;-size +100M:大于 100MB

2. 统计错误行数

grep -c "ERROR" /var/log/app/*.log

3. 演练(只列出)

find /var/log/app -name "*.log" -mtime +30 -print

正式执行

find /var/log/app -name "*.log" -mtime +30 -print0 | tar --null -czf /backup/logs-$(date +%F).tar.gz -T - --remove-files

--remove-files 会在打包后删除原文件,请先确认演练结果。

拿到类似的结果后,安琪的做法是先核对事实和数字,再结合“清理无主的云资源”的安排调整重点,最后才对外使用。

实用技巧与常见坑

  • 涉及 rm、–remove-files、chmod -R 等命令时,一定先运行演练版本。
  • 不同系统命令参数不同(例如 macOS 与 Linux 的 sed、find),提问时说明环境。

给运维工程师的特别提醒

排障时把日志片段、时间线和最近变更一起提供,让 AI 帮你列排查顺序。另外,涉及删除、重启、改权限的命令,必须先确认影响范围并做好回滚准备,不能照抄执行。

举一反三

  • 解释命令:把别人给你的长命令交给 AI,逐段解释是否安全。
  • Windows 用户:让 AI 给出 PowerShell 版本。

相关阅读