附录C:CNB 开发环境常用命令
本文档记录 CNB 定制开发环境中常用的命令,方便随时查阅。
1. fastfetch — 查看 Linux 系统信息
fastfetch 是一个类似 neofetch 的系统信息展示工具,可以美观地显示操作系统、CPU、GPU、内存等信息。
基本用法
bash
fastfetch直接运行即可在终端中展示系统概览信息。
常用选项
| 选项 | 说明 |
|---|---|
-c <config> | 指定配置文件或预设 |
-l <logo> | 设置 logo 来源,none 关闭 logo |
--logo-type <enum> | 设置 logo 类型 |
-v, --version | 显示版本信息 |
-h, --help | 显示帮助信息 |
--list-modules | 列出可用的信息模块 |
--list-presets | 列出可用的预设 |
--list-logos | 列出可用的 logo |
--gen-config | 生成配置文件 |
示例
bash
# 查看系统信息(默认)
fastfetch
# 不显示 logo
fastfetch -l none
# 使用指定预设
fastfetch -c preset_name
# 列出可用的信息模块
fastfetch --list-modules2. dm — 设备管理器(通过 SOCKS5 代理连接 Android/鸿蒙设备)
dm 是 /root/cnb-bin/scripts/device-manager.sh 的别名,用于通过 SOCKS5 代理连接 Android(ADB)或鸿蒙(HDC)设备。
语法
bash
dm <adb|hdc> <子命令> [参数...]ADB 子命令
| 子命令 | 说明 | 语法 |
|---|---|---|
adb pair | 配对 Android 设备 | dm adb pair <设备IP> <配对端口> <配对码> |
adb connect | 连接 Android 设备 | dm adb connect <设备IP> <连接端口> |
adb disconnect | 断开 Android 设备 | dm adb disconnect |
HDC 子命令
| 子命令 | 说明 | 语法 |
|---|---|---|
hdc connect | 连接鸿蒙设备 | dm hdc connect <设备IP> <连接端口> |
hdc disconnect | 断开鸿蒙设备 | dm hdc disconnect [端口] |
示例
bash
# 配对 Android 设备
dm adb pair 192.168.1.10 38419 123456
# 连接 Android 设备
dm adb connect 192.168.1.10 39693
# 断开 Android 设备
dm adb disconnect
# 连接鸿蒙设备
dm hdc connect 192.168.1.32 43797
# 断开鸿蒙设备
dm hdc disconnect注意事项
- 脚本内部使用
socat建立本地端口到 SOCKS5 代理的转发(代理端口: 12333) - ADB 本地转发端口固定为 15555,HDC 本地转发端口固定为 16666
- 配对(pair)操作为临时连接,配对完成后自动清理 socat 进程
- 连接(connect)操作会保持 socat 进程,断开时才清理
3. dst — Docker 容器启动
dst 是 /root/cnb-bin/scripts/docker-start.sh 的别名,用于快捷启动各类 Docker 服务。
语法
bash
dst [选项]选项
| 选项 | 说明 | 启动的服务及端口 |
|---|---|---|
mysql | 启动 MySQL | MySQL: localhost:3306,phpMyAdmin: localhost:8080 |
postgres | 启动 PostgreSQL | PostgreSQL: localhost:5432,pgAdmin: localhost:5050 |
redis | 启动 Redis | Redis: localhost:6379,Redis Commander: localhost:8081 |
nginx | 启动 Nginx 反向代理 | Nginx: localhost:8000 → localhost:8080 (Flutter Web) |
easytier | 启动 EasyTier 组网 | 组网模式,使用 host 网络 |
all | 启动所有服务 | 以上所有服务 |
help | 显示帮助信息 | - |
示例
bash
# 只启动 MySQL
dst mysql
# 只启动 PostgreSQL
dst postgres
# 只启动 Redis
dst redis
# 启动 Nginx 反向代理(用于 Flutter Web 热更新)
dst nginx
# 启动 EasyTier 组网
dst easytier
# 启动所有服务
dst all
# 查看帮助
dst help注意事项
- EasyTier 启动需要配置环境变量:
EASYTIER_NETWORK_NAME、EASYTIER_NETWORK_SECRET、EASYTIER_PEER_URL、EASYTIER_HOSTNAME_BASE,请在 CNB 密钥仓库 (public.yml) 中配置 - Nginx 反向代理用于 Flutter Web 开发热更新,通过 CNB 的 8000 端口预览地址访问
4. dsp — Docker 容器停止
dsp 是 /root/cnb-bin/scripts/docker-stop.sh 的别名,用于停止各类 Docker 服务。
语法
bash
dsp [选项]选项
| 选项 | 说明 |
|---|---|
mysql | 停止 MySQL 和 phpMyAdmin 容器 |
postgres | 停止 PostgreSQL 和 pgAdmin 容器 |
redis | 停止 Redis 和 Redis Commander 容器 |
nginx | 停止 Nginx 反向代理容器 |
easytier | 停止 EasyTier 组网容器 |
compose | 停止所有 compose 管理的容器 |
all | 停止所有容器(包括非 compose 管理的容器) |
help | 显示帮助信息 |
示例
bash
# 只停止 MySQL 相关容器
dsp mysql
# 只停止 PostgreSQL 相关容器
dsp postgres
# 只停止 Redis 相关容器
dsp redis
# 停止 Nginx 反代容器
dsp nginx
# 停止 EasyTier 容器
dsp easytier
# 停止所有 compose 管理的容器
dsp compose
# 停止所有容器(包括非 compose 管理的)
dsp all
# 查看帮助
dsp help注意事项
dsp all会停止所有运行中的 Docker 容器,不仅限于 compose 管理的容器dsp compose只停止由 docker compose 管理的容器,更加安全
5. dtb — 数据备份
dtb 是 /root/cnb-bin/scripts/data-backup.sh 的别名,用于将本地数据备份并同步到腾讯云 COS(对象存储)。
语法
bash
dtb无参数,直接运行即可开始备份流程。
备份内容
脚本会先停止所有运行中的 Docker 容器,然后依次备份以下数据:
| 数据路径 | 说明 |
|---|---|
/root/.local/share/CodeBuddyExtension | CodeBuddy 扩展数据 |
/root/.codebuddy | CodeBuddy 配置数据 |
/data/database/pgadmin | pgAdmin 数据 |
/data/database/postgres | PostgreSQL 数据库数据 |
/data/database/redis | Redis 数据 |
/data/database/mysql | MySQL 数据 |
前置条件
需要配置以下环境变量(通常在 CNB 密钥仓库中设置):
| 环境变量 | 说明 |
|---|---|
COS_BUCKET | COS 存储桶名称 |
COS_REGION | COS 存储桶区域 |
COS_SECRET_ID | COS Secret ID |
COS_SECRET_KEY | COS Secret Key |
工作流程
- 停止所有运行中的 Docker 容器(确保数据一致性)
- 将各数据目录打包为
.tar.gz格式,存放到/tmp/cnb-tmp/backups - 检查 COS 环境变量是否已配置
- 配置
coscli命令行工具 - 将备份数据同步到 COS 远程路径
示例
bash
# 执行数据备份
dtb注意事项
- 脚本会先停止所有 Docker 容器,备份完成后需手动重启(使用
dst命令) - 如果某个目录不存在,该条目会被跳过(不会报错)
- 脚本使用
set -e,任何步骤出错会立即退出 - COS 远程路径格式:
cos://<bucket>/backups/<repo_slug>/<branch>/ - 与
dtr(数据恢复)配合使用,dtb备份 →dtr恢复
6. dtr — 数据恢复
dtr 是 /root/cnb-bin/scripts/data-restore.sh 的别名,用于从腾讯云 COS(对象存储)恢复备份数据。
语法
bash
dtr无参数,直接运行即可开始恢复流程。
恢复内容
脚本会依次尝试恢复以下数据:
| 数据路径 | 说明 |
|---|---|
/root/.local/share/CodeBuddyExtension | CodeBuddy 扩展数据 |
/root/.codebuddy | CodeBuddy 配置数据 |
/data/database/pgadmin | pgAdmin 数据 |
/data/database/postgres | PostgreSQL 数据库数据 |
/data/database/redis | Redis 数据 |
前置条件
需要配置以下环境变量(通常在 CNB 密钥仓库中设置):
| 环境变量 | 说明 |
|---|---|
COS_BUCKET | COS 存储桶名称 |
COS_REGION | COS 存储桶区域 |
COS_SECRET_ID | COS Secret ID |
COS_SECRET_KEY | COS Secret Key |
工作流程
- 检查必要的环境变量是否已设置
- 配置
coscli命令行工具 - 从 COS 远程路径同步备份数据到本地
/tmp/cnb-tmp/backups - 逐项检查备份文件是否存在,存在则解压恢复到对应目录
示例
bash
# 执行数据恢复
dtr注意事项
- 如果某个备份文件不存在,该条目会被跳过(不会报错)
- 脚本使用
set -e,任何步骤出错会立即退出 - COS 远程路径格式:
cos://<bucket>/backups/<repo_slug>/<branch>/ - 备份文件格式为
.tar.gz
7. unzip — 解压 ZIP 文件
语法
bash
unzip [选项] 压缩文件.zip [文件列表] [-x 排除列表] [-d 解压目录]常用选项
| 选项 | 说明 |
|---|---|
-o | 覆盖已有文件,不提示确认 |
-n | 不覆盖已有文件 |
-d <目录> | 解压到指定目录 |
-l | 列出压缩包内容(不实际解压) |
-t | 测试压缩包完整性 |
-q | 静默模式 |
-v | 详细显示信息 |
-x <文件> | 排除指定文件不解压 |
-j | 忽略目录结构,将所有文件解压到同一目录 |
示例
bash
# 解压到当前目录
unzip 文件名.zip
# 解压到指定目录(覆盖已有文件)
unzip -o 文件名.zip -d /目标目录
# 查看压缩包内容(不解压)
unzip -l 文件名.zip
# 测试压缩包是否完整
unzip -t 文件名.zip
# 解压但排除某个文件
unzip 文件名.zip -x 不需要的文件.txt
# 静默模式解压到指定目录
unzip -q 文件名.zip -d /目标目录8. zip — 压缩为 ZIP 文件
语法
bash
zip [选项] 压缩文件名.zip 文件或目录列表常用选项
| 选项 | 说明 |
|---|---|
-r | 递归压缩目录(压缩目录时必须加) |
-e | 加密压缩(设置密码) |
-q | 静默模式 |
-v | 详细显示信息 |
-0 | 仅存储,不压缩(最快) |
-9 | 最高压缩率(最慢) |
-x <文件> | 排除指定文件 |
-m | 压缩后删除原文件 |
-u | 仅更新新增或修改的文件 |
-f | 仅更新已修改的文件 |
-T | 测试压缩包完整性 |
示例
bash
# 压缩目录(递归)
zip -r 文件名.zip 要压缩的目录
# 压缩多个文件
zip 文件名.zip file1.txt file2.txt
# 加密压缩
zip -e -r 文件名.zip 要压缩的目录
# 排除某些文件
zip -r 文件名.zip 目录 -x "目录/*.log"
# 最高压缩率
zip -9 -r 文件名.zip 要压缩的目录
# 压缩后删除原文件
zip -m -r 文件名.zip 要压缩的目录
# 更新已有压缩包中的文件
zip -u 文件名.zip 修改过的文件.txt命令速查表
| 命令 | 全称 | 说明 |
|---|---|---|
fastfetch | — | 查看 Linux 系统信息 |
dm | device-manager | 通过代理连接 Android/鸿蒙设备 |
dst | docker-start | 启动 Docker 服务 |
dsp | docker-stop | 停止 Docker 服务 |
dtb | data-backup | 备份数据到 COS |
dtr | data-restore | 从 COS 恢复备份数据 |
unzip | — | 解压 ZIP 文件 |
zip | — | 压缩为 ZIP 文件 |
