Linux 命令中文解释器
将 Linux 命令拆解为中文解释,逐项说明命令用途、每个选项含义、参数作用,以及整体命令的执行效果。支持从简单命令(ls -la)到复杂管道链(find . -type f | xargs grep pattern | sort | uniq -c)的完整解释。
核心能力
- 命令识别:覆盖 100+ 常用 Linux 命令(ls, grep, find, sed, awk, tar, curl, wget, ps, kill, chmod, chown, chroot, systemctl, journalctl, docker, git, ssh, scp, rsync, crontab, dmesg, iptables, ss, netstat 等)
- 选项解析:逐项解释短选项(-r, -i, -v, -f)和长选项(--recursive, --ignore-case, --verbose)的含义和常见组合
- 管道链拆解:将管道(|)、重定向(>, >>, <, 2>&1)、命令替换($())、逻辑链(&&, ||)按数据流顺序逐步解析
- 安全提示:对 rm -rf, dd, chmod 777, mkfs, :(){ :|:& };:, 重定向到 /dev/sda 等高风险操作发出警告
- 跨平台标注:注明 GNU/Linux 与 BSD/macOS(如 sed, date, stat)以及 busybox 环境的差异
- 退出码解释:解释命令可能返回的退出码含义(0=成功, 1=一般错误, 127=命令未找到, 139=段错误等)
工作流程
- 接收命令 — 获取用户提供的 Linux 命令字符串
- 拆解分析 — 识别主命令、子命令、选项、参数、管道和重定向
- 生成解释 — 按结构化模板输出中文解释
- 附加安全提示 — 高危操作附带警告和安全替代方案
- 提供示例 — 给出类似场景的实用示例
输入与输出
输入: 一个 Linux 命令字符串
tar -xzf project.tar.gz --exclude=node_modules -C /output
ps aux | grep nginx | awk '{print $2}'
find /logs -name "*.log" -mtime +7 -exec rm {} \;
输出: 结构化中文解释,包含以下部分:
## 命令:tar(磁带归档)
**中文名**:打包压缩工具
**作用**:创建、查看或解压 tar 归档文件
**语法**:tar [选项] [归档文件] [要处理的文件/目录]
**选项详解**:
-x, --extract 解压/提取文件
-z, --gzip 通过 gzip 压缩/解压(处理 .tar.gz/.tgz)
-f, --file=ARCHIVE 指定归档文件名(后必须紧跟文件名)
--exclude=PATTERN 排除匹配模式的文件
-C, --directory=DIR 先切换到目标目录再操作
**整体含义**:
将 project.tar.gz 解压到 /output 目录,解压时排除 node_modules 文件夹。
高级解释模板
管道链解释
## 命令链
find /logs -name "*.log" -mtime +7 | xargs rm -f
整体含义:在 /logs 下查找 7 天前的 .log 文件并批量删除。
逐步拆解:
第 1 步 | find /logs -name "*.log" -mtime +7
→ 在 /logs 目录下查找名称匹配 *.log 且修改时间超过 7 天的文件
→ -name "*.log": 文件名模式匹配
→ -mtime +7: 最后修改时间在 7 天前(+ 表示超过)
第 2 步 | xargs rm -f
→ 将 find 找到的文件路径作为 rm 的参数传入
→ rm -f: 强制删除(不提示确认)
复杂重定向解释
## 命令链
./app.sh > /var/log/app.log 2>&1 &
整体含义:后台运行 app.sh 脚本,将标准输出和标准错误都重定向到日志文件。
逐步拆解:
1. ./app.sh → 执行当前目录下的 app.sh 脚本
2. > /var/log/app.log → 将标准输出(stdout)写入日志文件(覆盖)
3. 2>&1 → 将标准错误(stderr)重定向到标准输出(即也写入日志文件)
4. & → 放入后台执行(不阻塞终端)
命令速查
文件操作
| 命令 | 中文名 | 常见选项 | 用途 |
|---|
| ------ | -------- | ---------- | ------ |
| ls | 列表 | -l 详细信息, -a 显示隐藏, -h 人性化大小, -t 按时间排序 | 列出目录内容 |
| cp | 复制 | -r 递归, -i 覆盖提示, -p 保留属性, -a 归档模式 | 复制文件或目录 |
| mv | 移动 | -i 覆盖提示, -v 显示详情, -u 更新时移动 | 移动或重命名 |
| rm | 删除 | -r 递归, -f 强制, -i 确认 | 删除文件或目录 |
| chmod | 更改模式 | -R 递归, --reference=FILE 参考文件权限 | 修改文件权限 |
| chown | 更改拥有者 | -R 递归, --from=用户:组 | 修改文件所有者 |
| ln | 链接 | -s 符号链接, -f 强制, -n 不覆盖目录 | 创建文件链接 |
文本处理
| 命令 | 中文名 | 常见选项 | 用途 |
|---|
| ------ | -------- | ---------- | ------ |
| cat | 连接 | -n 显示行号, -E 显示行末$, -T 显示制表符 | 查看或拼接文件内容 |
| less | 分页 | -N 行号, -S 不换行, +F 追踪模式(类似 tail -f) | 分页查看文件 |
| head | 头部 | -n 行数, -c 字节数 | 查看文件开头部分 |
| tail | 尾部 | -n 行数, -f 实时追踪, -F 追踪并轮转 | 查看文件末尾 |
| grep | 文本搜索 | -r 递归, -i 忽略大小写, -n 行号, -v 反选, -E 扩展正则, -c 计数, -l 仅文件名 | 搜索文件中的模式 |
| sed | 流编辑器 | -i 原地编辑, -n 静默模式(配合p命令), -e 多点编辑, -E 扩展正则 | 文本流编辑 |
| awk | 文本分析 | -F 分隔符, -v 设置变量, '$N' 列引用 | 文本分析和处理 |
| sort | 排序 | -n 数值排序, -r 降序, -k 指定列, -t 分隔符, -u 去重 | 对文本行排序 |
| uniq | 去重 | -c 重复计数, -d 仅显示重复, -u 仅显示唯一 | 去除重复行 |
| wc | 计数 | -l 行数, -w 单词数, -c 字节数 | 统计行/词/字节数 |
| cut | 剪切 | -d 分隔符, -f 字段范围, -c 字符范围 | 提取每行的特定字段 |
| tee | T 型分流 | -a 追加模式, -i 忽略中断 | 同时输出到文件和屏幕 |
系统管理
| 命令 | 中文名 | 常见选项 | 用途 |
|---|
| ------ | -------- | ---------- | ------ |
| ps | 进程 | aux 详细所有进程, -ef 标准格式, -C 命令名过滤 | 显示进程信息 |
| kill | 终止 | -9 SIGKILL 强制, -15 SIGTERM 优雅终止, -HUP 重载配置 | 发送信号给进程 |
| top/htop | 监视器 | -u 用户, -p PID, -H 线程模式 | 实时系统监控 |
| systemctl | 系统服务 | start/stop/restart/status/enable/disable | systemd 服务管理 |
| journalctl | 日志查看 | -u 服务, -f 实时, --since/--until 时间范围 | systemd 日志 |
| df | 磁盘空间 | -h 人性化, -T 文件系统类型, -i inode 信息 | 磁盘使用情况 |
| du | 磁盘使用 | -h 人性化, -s 总计, --max-depth=N 目录深度 | 文件和目录大小 |
网络工具
| 命令 | 中文名 | 常见选项 | 用途 |
|---|
| ------ | -------- | ---------- | ------ |
| curl | HTTP 工具 | -X 请求方法, -d 数据, -H Header, -o 输出文件, -L 跟随重定向, -v 详情, -s 静默 | HTTP 请求和数据传输 |
| wget | 下载 | -O 输出文件, -c 断点续传, -P 目录, -r 递归, -q 静默 | 文件下载 |
| ssh | 远程登录 | -i 密钥, -p 端口, -L 本地端口转发, -N 不执行命令 | 安全 Shell |
| scp | 远程复制 | -P 端口, -r 递归, -C 压缩, -i 密钥 | 远程文件复制 |
| ss/netstat | 连接查看 | -t/-u TCP/UDP, -l 监听, -n 数字, -p 进程 | 查看网络连接 |
| ping | 连通测试 | -c 次数, -i 间隔, -W 超时, -4/-6 IP 版本 | 网络连通性测试 |
包管理
| 系统 | 更新源 | 安装 | 搜索 | 移除 |
|---|
| ------ | -------- | ------ | ------ | ------ |
| apt (Debian/Ubuntu) | apt update | apt install | apt search | apt remove |
| yum/dnf (RHEL/Fedora) | yum check-update | yum install | yum search | yum remove |
| pacman (Arch) | pacman -Sy | pacman -S | pacman -Ss | pacman -R |
| brew (macOS) | brew update | brew install | brew search | brew uninstall |
常用符号解释
| 符号 | 中文名 | 说明 | 示例 |
|---|
| ------ | -------- | ------ | ------ |
| `\ | ` | 管道 | 左边命令的 stdout 传给右边命令的 stdin | `ls \ | grep foo` |
> | 覆盖重定向 | stdout 写入文件(覆盖原内容) | echo hello > file.txt |
>> | 追加重定向 | stdout 追加到文件末尾 | echo hello >> file.txt |
2> | 错误重定向 | stderr 写入文件 | cmd 2> error.log |
2>&1 | 合并重定向 | stderr 合并到 stdout | cmd > log 2>&1 |
&> | 全部重定向 | stdout+stderr 一起重定向(bash 4+) | cmd &> log |
< | 输入重定向 | 从文件读取作为 stdin | sort < file.txt |
<< | Here Document | 多行字符串作为 stdin | cat << EOF ... EOF |
$(...) | 命令替换 | 命令结果作为参数 | echo $(date) |
&& | 逻辑与 | 左边成功(退出码0)才执行右边 | make && make install |
| `\ | \ | ` | 逻辑或 | 左边失败才执行右边 | `ping -c1 host \ | \ | echo down` |
; | 顺序执行 | 无论成功失败都执行下一个 | cmd1; cmd2; cmd3 |
& | 后台运行 | 命令放入后台执行 | ./server & |
!$ | 最后参数 | 上一个命令的最后一个参数 | mkdir dir && cd !$ |
!! | 重复命令 | 重复上一个命令 | sudo !! |
* | 通配符 | 匹配任意字符串(0+ 字符) | *.txt |
? | 单字符通配 | 匹配任意单个字符 | file.? |
[...] | 字符集 | 匹配括号内任一字符 | [abc]*.txt |
{a,b,c} | 花括号扩展 | 生成多组字符串 | file.{txt,md,csv} |
~ | 家目录 | 当前用户家目录 | ~/.bashrc |
不适用场景
以下情况不应使用此 skill:
- 命令是 Windows CMD、PowerShell 或 SQL 查询(应使用相应工具)
- 用户要求执行该命令而非解释它
- 输入是编程语言代码片段(Python、JavaScript、Go 等)
- 用户询问的是 Linux 内核原理而非具体命令语法
- 用户只在闲聊中提及某个命令名称而不需要解释
安全警告规则
检测到以下模式时,必须在解释末尾附加安全警告:
| 危险模式 | 风险等级 | 警告内容 |
|---|
| ---------- | ---------- | ---------- |
rm -rf / 或 rm -rf /* | 致命 | 将删除整个文件系统!切勿在生产环境执行 |
rm -rf 配合变量 | 致命 | 变量为空时将删除根目录,建议使用 -- 隔离路径:rm -rf -- "$dir" |
dd if=/dev/zero of=/dev/sda | 致命 | 将覆盖整个磁盘分区表和数据! |
chmod -R 777 / | 致命 | 将使整个系统所有文件对全部用户可写,严重安全风险 |
mkfs 或 mke2fs | 致命 | 将格式化整个分区,所有数据丢失 |
| `:(){ :\ | :& };:` | 致命 | Fork 炸弹,将耗尽系统所有资源导致系统崩溃 |
chmod 777 | 高 | 使文件全局可写,存在安全风险。建议使用更精确的权限 |
| `curl ... \ | bash` | 高 | 直接从网络下载脚本并执行,无法验证脚本完整性 |
sudo 配合不可信命令 | 高 | 以 root 权限执行来源不可信的程序 |
>/dev/sda | 高 | 直接写入块设备,将破坏文件系统 |
Resources
references/gnu-bsd-diff.md — GNU (Linux) 与 BSD (macOS) 工具差异对照表references/exit-codes.md — Linux 退出码完整含义表references/command-patterns.md — 常见实用命令链模式(日志分析、批量处理、系统诊断等)references/danger-commands.md — 高危命令详解与安全替代方案