Skip to content

附录: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-modules

2. 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启动 MySQLMySQL: localhost:3306,phpMyAdmin: localhost:8080
postgres启动 PostgreSQLPostgreSQL: localhost:5432,pgAdmin: localhost:5050
redis启动 RedisRedis: localhost:6379,Redis Commander: localhost:8081
nginx启动 Nginx 反向代理Nginx: localhost:8000localhost: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_NAMEEASYTIER_NETWORK_SECRETEASYTIER_PEER_URLEASYTIER_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/CodeBuddyExtensionCodeBuddy 扩展数据
/root/.codebuddyCodeBuddy 配置数据
/data/database/pgadminpgAdmin 数据
/data/database/postgresPostgreSQL 数据库数据
/data/database/redisRedis 数据
/data/database/mysqlMySQL 数据

前置条件

需要配置以下环境变量(通常在 CNB 密钥仓库中设置):

环境变量说明
COS_BUCKETCOS 存储桶名称
COS_REGIONCOS 存储桶区域
COS_SECRET_IDCOS Secret ID
COS_SECRET_KEYCOS Secret Key

工作流程

  1. 停止所有运行中的 Docker 容器(确保数据一致性)
  2. 将各数据目录打包为 .tar.gz 格式,存放到 /tmp/cnb-tmp/backups
  3. 检查 COS 环境变量是否已配置
  4. 配置 coscli 命令行工具
  5. 将备份数据同步到 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/CodeBuddyExtensionCodeBuddy 扩展数据
/root/.codebuddyCodeBuddy 配置数据
/data/database/pgadminpgAdmin 数据
/data/database/postgresPostgreSQL 数据库数据
/data/database/redisRedis 数据

前置条件

需要配置以下环境变量(通常在 CNB 密钥仓库中设置):

环境变量说明
COS_BUCKETCOS 存储桶名称
COS_REGIONCOS 存储桶区域
COS_SECRET_IDCOS Secret ID
COS_SECRET_KEYCOS Secret Key

工作流程

  1. 检查必要的环境变量是否已设置
  2. 配置 coscli 命令行工具
  3. 从 COS 远程路径同步备份数据到本地 /tmp/cnb-tmp/backups
  4. 逐项检查备份文件是否存在,存在则解压恢复到对应目录

示例

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 系统信息
dmdevice-manager通过代理连接 Android/鸿蒙设备
dstdocker-start启动 Docker 服务
dspdocker-stop停止 Docker 服务
dtbdata-backup备份数据到 COS
dtrdata-restore从 COS 恢复备份数据
unzip解压 ZIP 文件
zip压缩为 ZIP 文件

基于 Flutter 官方文档整理