YC命令工具介绍,YC25/yclist
YC25 使用手册
命令行安装包与脚本自动化管理工具
作者:Ydecl · 官网:yc25.yc2019.cn
目录
一、产品介绍
YC25(命令名 yc)是一款跨平台的命令行框架,提供两套标准化能力:
- 安装包管理 —— 不用再去网上一个个搜安装包,一条命令下载所需软件。
- 脚本自动化 —— 把复杂的环境配置、服务部署写成 Python 脚本,一键执行,解放双手。
框架本身不直接解决具体问题,真正的功能由持续扩展的安装包和脚本来交付。作者会不断上架新脚本(如一键换源、温度查询、PHP/Java 自动安装等),用户也可上传自己的脚本。
程序基于 Python 开发,使用 PyInstaller 打包为单文件可执行程序,支持 Windows 和 Linux 两大平台,开箱即用,无需安装 Python 环境。
二、设计理念与使用场景
一句话定位
YC25 是一个命令行框架:把”装软件”和”跑脚本”两件事标准化,真正的价值由持续扩展的安装包和脚本来交付。
设计理念
- 框架而非工具:YC25 本身不直接解决某个具体问题,它提供的是「安装包管理」和「脚本执行」两套标准化能力。具体能做什么,取决于有哪些安装包和脚本。
- 云端驱动,本地免维护:安装包清单和脚本清单全部托管在云端,程序启动时实时拉取。新增或更新内容只需在后台操作,用户端零改动、零升级即可生效。
- 脚本即功能:脚本是可扩展的功能单元,作者会持续开发并上架更多脚本——目前已有一键换源,后续还会推出温度查询、PHP 自动安装、Java 自动安装配置等。用户也可以在用户中心上传自己的脚本。
- 命令即操作:摒弃图形界面的层层点击,所有功能通过
yc子命令完成,记忆成本低、可脚本化、可批量。 - 一套命令,双端通用:Windows 与 Linux 使用完全相同的命令语法,换平台无需重新学习。
核心价值
| 层级 | 说明 |
|---|---|
| 框架层(YC25) | 提供安装包下载、脚本执行、版本管理、云端同步等基础能力,本身不直接产生业务价值 |
| 内容层(安装包) | 官方维护的常用软件安装包,解决”换新电脑要一个个搜官网”的问题 |
| 内容层(脚本) | 作者持续开发 + 用户自上传的自动化脚本,解决”配环境步骤繁琐易错”的问题 |
注意:一键换源只是目前已上架的众多脚本之一,后续还会推出更多脚本(如程序部署、PHP 自动安装、Java 自动安装配置等)。脚本才是面向用户的最终价值,YC25 负责让这些脚本一键可达、自动更新、跨平台运行。
典型使用场景
- 新装系统快速还原 —— 装完系统后,用
yc install -n批量拉取常用软件,省去逐一下载的时间。 - 服务器环境一键部署 —— 通过作者上架的脚本(如一键换源),或将换源、装 Docker、配 Nginx 等流程自定义为脚本,
yc run -n 脚本名一键执行。 - 面向非技术用户交付 —— 把安装包或脚本传到云端,对方只需运行你给的命令,即可自动完成软件安装或环境配置,无需远程协助。
- 个人自动化工具集 —— 把日常重复的运维操作、数据处理脚本托管到云端,多台设备共享同一套脚本库。
三、下载与安装
3.1 一键安装(推荐)
Windows(PowerShell)
1 | $c = irm 'https://static.yc2019.cn/ydecl/yclist/yc/install.ps1'; iex $c |
Linux
1 | curl -fsSL https://static.yc2019.cn/ydecl/yclist/yc/install.sh | bash |
3.2 进阶安装参数
安装脚本支持以下参数:
| 参数(Linux / Windows) | 简写 | 说明 |
|---|---|---|
--dir / -Dir |
-d |
自定义安装目录 |
--uninstall / -Uninstall |
-u |
卸载 yc |
--force / -Force |
-f |
强制重新下载(忽略版本相同) |
--no-path / -NoPath |
-n |
不修改 PATH 环境变量 |
--yes / -Yes |
-y |
跳过确认提示 |
--quiet / -Quiet |
-q |
静默模式 |
--help / -Help |
-h |
显示帮助 |
-- |
- | 分隔符,后面的参数传递给 yc |
示例:
1 | # Linux:自定义安装目录 |
1 | # Windows:自定义安装目录 |
3.3 手动安装
如果一键脚本无法使用,可手动下载:
- Windows 下载地址:(请访问官网 yc25.yc2019.cn 获取最新下载链接)
- Linux 下载地址:(请访问官网 yc25.yc2019.cn 获取最新下载链接)
下载后将可执行文件放到任意目录,并将该目录加入系统 PATH 环境变量即可。
3.4 默认安装路径
| 平台 | 默认路径 |
|---|---|
| Linux | ~/.local/bin/yc |
| Windows | %LOCALAPPDATA%\Programs\yc\yc.exe |
3.5 版本管理机制
- 安装脚本会读取远程
version文件,与本地.yc_version比较。 - 版本相同 → 跳过下载,直接运行(如果传了参数)。
- 版本不同 → 自动下载新版本覆盖安装。
- 自动识别已有安装路径(通过
~/.config/yc/install_path或 PATH 中的 yc)。
四、快速上手
安装完成后,打开终端,输入 yc 即可看到可用命令:
1 | [CN]Ydecl@yc2019.cn |
三步快速体验:
1 | # 1. 查看可用安装包 |
五、命令详解
5.1 yc install —— 安装包管理
用于查看、下载软件安装包。
1 | usage: yc install [-h] [-ls] [-a] [-n NAME] [-o OUT] [-vpn VPNPROX] |
列出安装包
1 | yc install -ls |
输出示例:
1 | 1.7z-zip-x64.exe |
带有 --(User) 后缀的是你自己在用户中心添加的安装包。
下载安装包
1 | # 精确或模糊匹配名称 |
匹配规则:
- 精确匹配 → 直接下载
- 包含匹配且唯一 → 自动选择
- 包含匹配且多个 → 列出所有匹配项
安装包来源类型
每条安装包记录有一个 source 字段,决定下载方式:
| source 值 | 说明 |
|---|---|
url |
直接从 url 字段指定的地址下载文件 |
github |
从 GitHub Releases 拉取最新版本的文件列表,由用户选择下载哪个 |
对于 github 类型,程序会请求 https://api.github.com/repos/{github_name}/{github_repo}/releases/latest,列出所有资产文件让你选择。如果网络不好,可使用 -vpn 参数指定 GitHub 代理,或在 conf.json 的 App_Config 中配置默认代理。
5.2 yc run —— 脚本管理
用于查看、运行、更新自动化脚本。脚本采用 Python 编写,可实现任意自动化操作。
1 | usage: yc run [-h] [-ls] [-a] [-n NAME] [-del DELETE] [-q QUEUE] [-update UPDATE] [-db] |
列出脚本
1 | yc run -ls |
输出示例:
1 | 1.everything |
带有 --(User) 后缀的是你自己在用户中心添加的脚本。
运行脚本
1 | yc run -n mirro |
运行逻辑:
- 先检查本地
run/目录是否已有该脚本。 - 本地存在 → 检查版本(对比
version文件与云端版本),有新版则提示,然后执行hello.py。 - 本地不存在 → 从云端下载脚本到
run/目录。
向脚本传递参数
1 | yc run -n demo -q "{-n,hello}" |
-q 参数格式为 "{参数1,参数2,...}",逗号会被替换为空格传递给脚本。例如上面的命令等价于在脚本目录执行 python hello.py -n hello。
脚本内部使用
argparse接收参数,详见 开发者指南。
更新脚本
1 | yc run -update mirro |
删除本地脚本并重新从云端下载最新版。
删除本地脚本
1 | yc run -del mirro |
脚本存储类型
每条脚本记录有一个 source 字段:
| source 值 | 说明 |
|---|---|
7z |
从云端下载 .7z 压缩包,解压到 run/{脚本名}/ 目录后执行 |
cloud |
直接从 url 指定的地址拉取 Python 代码并在内存中执行(同时缓存到本地) |
url |
直接从 url 下载文件到 run/ 目录 |
对于 cloud 类型,程序会先检测云端是否可达:
- 可达 → 直接运行云端最新代码,并缓存到本地。
- 不可达 → 回退运行本地缓存版本。
- 云端和本地都没有 → 提示错误。
5.3 yc ssh —— SSH 管理
注意:当前版本中 SSH 功能在主入口中被注释,如需使用请自行启用。SSH 相关代码位于
ssh/目录。
1 | yc ssh -ls # 列出已保存的 SSH 配置 |
添加 SSH 时输入格式:名称 IP 端口 用户名 密码 备注
5.4 yc update —— 程序自更新
1 | yc update |
检查云端版本,如有新版本则下载 yc_update 程序,由 yc_update 负责替换主程序并重启。
5.5 yc set —— 配置设置
1 | yc set -u <用户名> |
设置 conf.json 中的 User 字段,该字段用于关联你在用户中心(www.yc2019.cn)的账号,拉取你自己添加的安装包和脚本。
六、配置文件说明
配置文件位于程序目录下的 config/conf.json。
普通用户只需关注
User字段。 添加自己的安装包和脚本,请登录用户中心(www.yc2019.cn)操作,无需修改此文件、无需搭建任何后端服务。`Cloud_Install` /Cloud_Run仅面向拥有自有数据后端的高级用户。
完整结构示例
1 | { |
字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
App_Config |
数组 | 应用级配置。id=2 的 conf 字段用于指定 GitHub 代理地址(下载 GitHub Releases 时加速)。 |
Cloud_Install |
数组 | (高级) 自定义安装包数据源。每个元素含 url(需返回 {"items":[...]} 的 API 地址)和 YN(Y 启用 / N 禁用)。普通用户无需配置。 |
Cloud_Run |
数组 | (高级) 自定义脚本数据源,结构同 Cloud_Install。普通用户无需配置。 |
User |
字符串 | 你的用户中心用户名。程序据此拉取你在用户中心添加的私有安装包和脚本。通过 yc set -u 用户名 设置。 |
数据源是如何组合的
yc install -ls 和 yc run -ls 的列表由多个数据源合并而成:
1 | ┌─────────────────────────────────────────────────────┐ |
- 普通用户:在用户中心添加的内容会出现在列表中,名称带
--(User)后缀。无需关心Cloud_Install。 - 高级用户:如拥有自己的 PocketBase 或兼容 API 服务,可在
Cloud_Install/Cloud_Run中填入地址并设YN=Y,程序会额外拉取该源的数据。
七、常见问题
Q:运行 yc 提示”你是在无人区吗”?
A:网络无法访问云端 API。检查网络连接,或确认 data.yc2019.cn 是否可达。
Q:yc install -ls -a 报 KeyError: 'info'?
A:-a 参数会显示每条安装包的 info 描述字段,但当前后台数据未填写该字段。请联系管理员在后台补充 info 字段,或使用 yc install -ls(不带 -a)。
Q:GitHub 类型的安装包下载很慢?
A:使用 -vpn 参数指定 GitHub 代理,例如 yc install -n obs -vpn 。在 conf.json 的 App_Config 中配置 id=2 的 conf 字段作为默认代理。
Q:如何添加自己的安装包和脚本?
A:登录用户中心 www.yc2019.cn,在对应集合中添加记录。详细步骤见 开发者指南。
Q:脚本运行时参数怎么传?
A:使用 -q 参数,格式为 "{参数1,参数2}",逗号会被替换为空格。例如 yc run -n demo -q "{-n,hello}"。
Q:程序支持离线使用吗?
A:支持 --local 参数启用离线模式,此时所有网络请求会被拦截,只能使用本地已缓存的脚本。安装包列表和脚本列表无法更新。
YC25 开发者指南
面向想要自定义安装包、开发脚本、或二次开发的用户
作者:Ydecl · 官网:yc25.yc2019.cn
定位说明:YC25 是一个命令行框架,本身提供”安装包管理”和”脚本执行”两套标准化能力。具体功能由安装包和脚本来交付——作者持续上架官方脚本(如一键换源、温度查询、PHP/Java 自动安装等),用户也可开发并上传自己的脚本。本指南帮助你理解框架结构并开发自己的脚本和安装包。
目录
一、项目结构
二、脚本开发
2.1 脚本入口规范
所有脚本都是 Python 文件,入口为 hello.py 中的 def main() 函数(或直接写在 if __name__ == "__main__" 块中)。
最简示例(run/demo/hello.py):
1 | import argparse |
2.2 脚本目录结构
一个完整的脚本包含以下文件:
1 | 脚本名/ |
version 文件内容为纯文本版本号,例如 2025.10.28.1。程序运行脚本时会读取该文件与云端版本对比,有新版时提示更新。
2.3 接收外部参数
脚本通过 argparse 接收参数。调用时使用 yc run -n <脚本名> -q "{参数列表}"。
-q 的格式规则:
- 用
{}包裹 - 多个参数用逗号
,分隔 - 程序会将逗号替换为空格,拼接成命令行参数
示例:
1 | yc run -n demo -q "{-n,hello}" |
等价于:
1 | python hello.py -n hello |
多参数示例:
1 | yc run -n myscript -q "{-n,test,-o,/tmp/output}" |
等价于:
1 | python hello.py -n test -o /tmp/output |
⚠️ 脚本内部必须自行处理
sys.argv,建议使用argparse。
2.4 脚本存储类型
上传到云端的脚本需要指定 source 字段:
| source | 说明 | 所需字段 |
|---|---|---|
7z |
将脚本目录打包为 .7z 上传,程序下载后解压执行 |
file(7z 文件名) |
cloud |
直接托管 .py 文件的 URL,程序拉取代码直接执行 |
url(.py 文件直链) |
url |
直接下载文件到本地 | url |
7z 打包规则
- 使用
7z格式压缩(程序内置py7zr解压)。 - 压缩包内不要包含外层文件夹,直接打包
hello.py和version文件。 - 压缩包命名为
{脚本名}.7z。
cloud 类型优势
- 无需打包,直接把
.py文件托管到任意可直链访问的地方(如 GitHub Raw、对象存储)。 - 程序每次运行都会拉取最新代码,修改后即时生效。
- 支持离线回退:云端不可达时自动运行本地缓存。
- 注意的 .py 文件夹名必须添加 .ydecl后缀 , 如: demo.py.ydecl
2.5 脚本开发注意事项
- 路径获取:使用
PYYL.path.get_config_path()获取程序目录,不要硬编码路径。如不能使用 请开发者另在脚本中开发。1
2
3
4
5
6import sys, os
from pathlib import Path
def get_config_path():
if getattr(sys, 'frozen', False):
return Path(sys.executable).parent
return Path(os.getcwd()) - 依赖:脚本依赖的 Python 库需要用户环境已安装。常用库(requests、colorama 等)随 yc 一起打包。
- 跨平台:注意 Windows / Linux 路径分隔符差异,建议用
os.path.join或pathlib。 - 交互输入:可使用
input()进行交互式输入(如 mirro 脚本)。
2.6 实际脚本示例
以 run/cloud/mirro.py(镜像源替换脚本)为例:
1 | #!/usr/bin/env python3 |
三、安装包配置
3.1 安装包记录字段
每条安装包记录支持以下字段:
| 字段 | 必填 | 说明 |
|---|---|---|
name |
✅ | 安装包名称,用于列表展示和匹配 |
source |
✅ | 下载类型:url 或 github |
url |
url 类型必填 |
直接下载地址 |
github_name |
github 类型必填 |
GitHub 仓库所有者 |
github_repo |
github 类型必填 |
GitHub 仓库名 |
info |
❌ | 详细描述(yc install -ls -a 时显示) |
3.2 url 类型示例
1 | { |
3.3 github 类型示例
1 | { |
github 类型会请求 https://api.github.com/repos/{github_name}/{github_repo}/releases/latest,列出所有资产文件让用户选择下载。
3.4 本地临时添加(已废弃)
旧版本通过 conf.json 的 Local_Install 字段添加本地安装包,新版本已废弃,改为统一在用户中心管理。如需测试,仍可在 conf.json 中添加,但建议迁移到用户中心。
四、云端后台与用户中心
4.1 用户中心
用户中心地址:www.yc2019.cn
登录后可管理自己的安装包和脚本,。程序通过 User 字段关联你的账号。
添加自己的安装包:
- 登录 https://www.yc2019.cn
- 进入YC25菜单
- 点击「添加」,填写
name、source、url等字段type选择install- 保存后,在客户端运行
yc install -ls即可看到带--(User)后缀的条目
添加自己的脚本:
- 登录 http://www.yc2019.cn
- 进入YC25菜单
- 点击「添加」,填写
name、source、file或url、versiontype选择run- 保存后,在客户端运行
yc run -ls即可看到带--(User)后缀的条目
4.3 自定义云源(高级,可选用)
普通用户不需要这一步。用户中心已经能满足添加私有安装包和脚本的全部需求,且无需自建后端。
仅当你希望接入自己的 PocketBase 或其他兼容 API 服务时,才使用
Cloud_Install/Cloud_Run。
在 conf.json 中添加自定义源:
1 | "Cloud_Install": [ |
返回的 JSON 需包含 items 数组,每个元素至少有 name 字段。设置 YN=Y 启用后,该源的数据会额外合并进列表(不影响官方源和用户源)。
五、配置文件 conf.json 详解
配置文件路径:{程序目录}/config/conf.json
重要区分:添加自定义安装包和脚本,首选用户中心(www.yc2019.cn),无需修改 conf.json、无需自建后端。
Cloud_Install/Cloud_Run是为拥有自有数据后端的高级用户准备的扩展接口。
App_Config —— 应用配置
数组形式,通过 id 查找配置项:
1 | "App_Config": [ |
| id | 用途 | 字段 |
|---|---|---|
| 2 | GitHub 代理地址(install 的 github 类型使用) |
conf |
程序通过 PYYL.path.find_by_id("App_Config", 2, "conf") 读取代理地址。
User —— 用户标识(普通用户唯一需要设置的字段)
1 | "User": "ydecl" |
关联用户中心账号。程序通过 WordPress API 将用户名转换为 userID,再从 yc2019_wp_user_yc2019 集合拉取该用户私有的安装包(type=install)和脚本(type=run)。
设置命令:
1 | yc set -u 你的用户名 |
设置后,你在用户中心添加的内容会自动出现在 yc install -ls / yc run -ls 列表中,名称带 --(User) 后缀。
Cloud_Install / Cloud_Run —— 自定义云源(高级)
仅当你拥有自己的 PocketBase 或兼容 API 服务时才需要配置。普通用户请直接使用用户中心。
1 | "Cloud_Install": [ |
| 字段 | 说明 |
|---|---|
id |
源编号 |
url |
API 地址,需返回 {"items": [...]} 格式 |
YN |
是否启用,Y 启用 / N 禁用 |
启用后,yc install -ls / yc run -ls 会额外拉取该源的数据并合并进列表。
- 标题: YC命令工具介绍,YC25/yclist
- 作者: Ydecl/忧
- 创建于 : 2026-10-06 19:30:00
- 更新于 : 2026-10-08 12:42:07
- 链接: https://blog.yc2019.cn/posts/yc25.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。