---
title: "ERPC CLI 命令"
description: "ERPC CLI 的全部命令组、全局选项 --json 和 --lang、错误格式与退出码，以及 erpc storage 和 erpc backup 命令。"
canonical: "https://erpc.global/zh/doc/erpc-cli/commands/"
locale: "zh"
---

# ERPC CLI 命令

用一张表列出 ERPC CLI 的全部命令组，以及适用于每个命令的选项和脚本可以依赖的退出码。

本页介绍 ERPC CLI `v0.1.0-rc.4`，这是一个预发布版本。

## 命令组

运行任何不带子命令的命令组（例如 `erpc validator` 或 `erpc worker`）即可列出其子命令。

| 命令 | 作用 |
| --- | --- |
| `validator` (`v`), `rpc` (`r`), `node` (`n`) | [validator 与 RPC 节点](https://erpc.global/zh/doc/erpc-cli/nodes/) |
| `rpc call` | 向共享端点、自定义端点或 x402 端点发送一个 JSON-RPC 请求（[RPC 调用与 Webhook](https://erpc.global/zh/doc/erpc-cli/rpc-call-and-webhooks/)） |
| `webhook` | 管理本地 RPC 订阅，并将事件投递到 HTTP 回调 |
| `ai`, `resume`, `memory`, `skills` | [ERPC AI](https://erpc.global/zh/doc/erpc-cli/ai/)，以及它已保存的对话、记忆和技能 |
| `worker` (`w`) | 服务器上的[您自己的应用](https://erpc.global/zh/doc/erpc-cli/worker-quickstart/) |
| `storage` (`st`), `backup` | ERPC Global Storage 和机器备份（[见下文](https://erpc.global/zh/doc/erpc-cli/commands/#存储与备份)） |
| `wallet` | 用 EURC 购买 ERPC Credit 的 Base 钱包（[用钱包付款](https://erpc.global/zh/doc/erpc-cli/ai/#用钱包付款)） |
| `signup`, `login`, `logout`, `whoami` | 您的 ERPC 账户（[登录与密钥](https://erpc.global/zh/doc/erpc-cli/sign-in-and-keys/)） |
| `doctor` | 报告本机如何保存您的会话 |
| `config` | 读取和更改 `~/.erpc/config.toml`（仅限公开设置）。`erpc config init` 会写入一个带注释的初始文件，除非该文件已存在 |
| `version` | 版本、构建和组件信息 |
| `completions` | 生成 shell 补全：`erpc completions zsh`，也支持 bash、fish、powershell 和 elvish |

## 全局选项

- **`--json`** 提供机器可读的输出：`erpc --json <command>`。`ERPC_JSON=true` 的效果相同。在节点命令中，`--json` 必须放在命令之前。
- **`--lang`** 设置 erpc 使用的语言：`en`、`ja`、`zh` 或 `ru`。未指定时，erpc 使用 `locale` 设置，若没有该设置则使用系统语言。

## 错误与退出码

失败的输出在各处都相同：一行 `error:` 说明出了什么问题，如果有下一步可做，还会有一行 `hint:` 说明接下来该怎么做。使用 `--json` 时，失败是标准输出上的一个对象 `{"error": {"code", "exit", "message", "hint"}}`。有两种情况会改为打印 clap 自身的消息并以 2 退出：在终端中 clap 无法解析的命令行，以及节点命令树（`erpc validator`、`rpc`、`node`）的子命令不接受的参数，后者即使在 `--json` 下也是如此。只有当命令需要向脚本进一步说明它在失败前做了什么时，才会出现 `details` 字段，并且在终端中从不出现。

| 退出状态 | 代码 | 含义 |
| --- | --- | --- |
| 0 | | 成功 |
| 1 | `failed` | 无法完成所请求的操作 |
| 2 | `usage` | 命令行无法使用 |
| 3 | `needs_terminal` | 需要有人作答：传递 `--yes` 或在终端中运行 |
| 4 | `not_signed_in` | 请运行 `erpc login` |
| 5 | `problems_found` | 检查（`status`、`doctor`）发现了问题，其报告会指出是哪些问题 |
| 6 | `declined` | 您选择了否，且未做任何更改 |
| 7 | `network` | 无法连接 ERPC 或其他服务 |

被 Ctrl-C（或 SIGTERM、SIGHUP）停止时，erpc 会以该信号本身结束，因此脚本中的循环也会停止。已发布的代码会保留其名称和退出状态，且代码从不重复使用。

## 存储与备份

```bash
erpc storage buy 5        # an ERPC Global Storage plan
erpc backup init          # back this machine up with restic, on a schedule if you like
```

`erpc storage buy` 购买 ERPC Global Storage 方案，费用从 ERPC Credit 中支付。方案和价格请见[价格](https://erpc.global/zh/price/)。

### erpc storage

- `erpc storage put` 会在发送文件的任何部分之前在本机上对其加密，除非指定了 `--no-encrypt`。ERPC 只存储加密后的字节，从不持有密钥。`erpc storage get` 会识别加密文件并将其解密。
- 每个账户有一个存储密钥，保存在 `erpc login` 选择的保存位置中。erpc 不会将其保存在 Linux 内核密钥环中（该密钥环在重启后会丢失）：请使用 `--store 1password` 或 `--store file` 登录，或使用 `--no-encrypt`。使用 `file` 保存位置时，密钥以未加密的形式存放在 `~/.erpc/storage-key`（权限模式 0600）中。`--no-encrypt` 会将您要发送的文件按原样上传，不加密。
- **丢失存储密钥会丢失所有用它加密的文件**，且 ERPC 无法恢复。`erpc storage key export --show` 会打印密钥，以便在本机之外保存一份副本；`erpc storage key import` 可在另一台机器上将其导入。
- 文件存储所用的路径及其大小对 ERPC 可见。
- `erpc storage keys list` 显示存储访问密钥，`erpc storage keys revoke <n>` 撤销其中一个。

### erpc backup

`erpc backup` 使用 restic 将机器备份到 ERPC Global Storage。文件在离开您的机器之前就已在本地加密，ERPC 从不持有能打开备份的密码。

| 命令 | 作用 |
| --- | --- |
| `erpc backup init` | 安装 restic，创建访问密钥和仓库，并为本机提供专属的 restic 密钥 |
| `erpc backup run [paths]` | 执行备份。在 Linux 上，如果未指定路径，则备份 `/`，但不含伪文件系统、挂载点和易变路径。在其他系统上，请指定路径 |
| `erpc backup snapshots` | 本机的快照；使用 `--all-hosts` 查看所有机器的快照 |
| `erpc backup restore <id\|latest>` | 恢复到一个新目录，除非 `--target` 指定了其他目录。`--in-place` 会在询问后覆盖本机 |
| `erpc backup check` | 检查仓库并回读 5% 的数据 |
| `erpc backup prune` | 在询问后，为一台机器保留 7 个每日快照、4 个每周快照和 6 个每月快照 |
| `erpc backup schedule daily\|weekly\|off [paths]` | 按计时器在 `--at`（默认 03:00）运行 `run` |
| `erpc backup status` | 计划，以及上次运行的结束情况 |
| `erpc backup password --show` | 打印仓库的主密码，以便在其他地方保存一份副本 |

- **每台机器都会获得一个仅追加的密钥**，该密钥无法删除自身的备份。运行过 `erpc backup init` 的机器还持有能够删除备份的密钥，因此只有在既不保存 erpc 会话、也不保存账户备份 Secret 的机器上，这种保护才有效。
- **请在这些机器之外保存一份 `erpc backup password --show` 的副本**。同时丢失主密码和每台机器的 `backup.env` 会导致备份丢失。
- **备份会排除已知的密钥文件和系统 Secret**，例如 `.ssh/id_*`、`.config/solana/id.json`、erpc 的会话和 SSH 主机密钥。以其他名称或在其他位置存放的密钥材料会像其他文件一样被备份：请使用 `--exclude` 将其排除。
- erpc 安装 restic 0.19.1，并根据编译进 erpc 的 SHA-256 摘要检查压缩包和程序。
- **计划任务**：在 Linux 上，先运行 `sudo erpc backup init`，然后运行 `sudo erpc backup schedule daily`。在 macOS 上，运行 `erpc backup schedule daily ~/Documents`；该任务以您的身份、在您登录期间运行。
- 备份存放到账户的默认区域。`erpc backup` 在它所备份的机器上运行；worker 的服务器则改用 `erpc worker backup on` 进行设置（[备份应用的状态数据](https://erpc.global/zh/doc/erpc-cli/worker-status-and-billing/#备份应用的状态数据)）。
