---
title: "ERPC CLI 命令"
description: "ERPC CLI 的所有命令群組、全域選項 --json 與 --lang、錯誤格式與退出碼，以及 erpc storage 與 erpc backup 命令。"
canonical: "https://erpc.global/zh-tw/doc/erpc-cli/commands/"
locale: "zh-tw"
---

# 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-tw/doc/erpc-cli/nodes/) |
| `rpc call` | 向共享、自訂或 x402 端點傳送一個 JSON-RPC 請求（[RPC 呼叫與 Webhook](https://erpc.global/zh-tw/doc/erpc-cli/rpc-call-and-webhooks/)） |
| `webhook` | 管理本機的 RPC 訂閱，並將事件傳遞到 HTTP 回呼 |
| `ai`, `resume`, `memory`, `skills` | [ERPC AI](https://erpc.global/zh-tw/doc/erpc-cli/ai/)，以及其已儲存的對話、記憶與技能 |
| `worker` (`w`) | 伺服器上的[您自己的應用](https://erpc.global/zh-tw/doc/erpc-cli/worker-quickstart/) |
| `storage` (`st`), `backup` | ERPC Global Storage 與機器備份（[見下文](https://erpc.global/zh-tw/doc/erpc-cli/commands/#儲存與備份)） |
| `wallet` | 以 EURC 購買 ERPC Credit 的 Base 錢包（[從錢包付款](https://erpc.global/zh-tw/doc/erpc-cli/ai/#從錢包付款)） |
| `signup`, `login`, `logout`, `whoami` | 您的 ERPC 帳戶（[登入與金鑰](https://erpc.global/zh-tw/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-tw/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-tw/doc/erpc-cli/worker-status-and-billing/#備份應用的狀態資料)）。
