Linux / Windows / macOS / Kubernetes / DevOps / 排障 / 指南 / 中间件 / 教程 / AI 与 MLOps / Office 多分支速查栈。支持多分支切换,新增分支不需要改代码。
需要 Node.js 22 及以上版本。
npm install
npm run build # 构建到 build/本地预览:
npx serve build # 或 python3 -m http.server -d build 8000command/ 是私有仓库 dos2un1x/command 的 git submodule。公开 clone 只包含站点代码;没有该仓库读取权限时,npm run build / npm run verify 会提示初始化子模块并停止。
有权限的人首次拉取后执行:
git submodule update --init --recursive也可以直接 git clone --recurse-submodules git@github.com:dos2un1x/command-hub.git。
内容变更在 command/ 子模块内提交并推送,然后在 command-hub 提交更新后的子模块指针:
git -C command add .
git -C command commit -m "content: ..."
git -C command push
git add command
git commit -m "chore(content): 更新 command 子模块"GitHub Actions 用只读 Deploy Key 拉取该子模块;没有权限的公开贡献者可以运行 npm test,但不能完整构建。站点发布后的 HTML/搜索索引仍然是公开的,私有化保护的是 Markdown 源与提交历史。
command/<分支>/<slug>.md 内容源(Markdown,私有子模块)
branches.json 分支注册表
template/ EJS 模板
template/snake.ejs 贪吃蛇小游戏页(非命令页)
template/tetris.ejs 俄罗斯方块小游戏页(非命令页)
template/review.ejs 每日复习页
template/diagnose.ejs 故障诊断向导页
assets/ CSS / JS / 数据源
assets/data/diagnose.json 诊断向导决策树数据
assets/js/snake-core.js 贪吃蛇纯逻辑(可单测)
assets/js/tetris-core.js 俄罗斯方块纯逻辑(可单测)
assets/js/visits-core.js 访问统计纯逻辑(可单测)
assets/js/visits.js 访问统计上报与首页渲染
server/visit.php 访问统计接口(PHP + SQLite/MySQL,虚拟主机可用)
server/config.sample.php 访问统计配置模板(复制为 config.php)
server/schema.sql 访问统计 MySQL 表结构(可选)
test/ 单测(node --test)
test/php-mysql.Dockerfile MySQL 集成测试用的 PHP 镜像
scripts/ 构建与校验脚本(scripts/lib/ 为公共解析与 SEO 逻辑)
build/ 构建产物(gitignore)
deploy/ 本地部署状态与日志(gitignore)
public/ public.zip 发布暂存与打包产物(gitignore,由 npm run package 生成)
template/index.ejs 渲染十一分支入口,采用蓝紫渐变、圆角卡片与胶囊式分支标签,让首页到内页的过渡保持连续。页面包含品牌文字标识、分支切换、全局搜索、条目/分支/分类统计、按目的进入的“我想…”(查命令 / 学一个领域 / 排故障 / 上线服务 / 跟着向导查)五张场景卡与“每日复习”“故障诊断向导”入口、十一个分支索引卡(名称、描述、分类与条目数)、跨分支高频入口,以及首屏可见的“小彩蛋”游戏入口。样式集中在 assets/css/index.css 的首页段落;分支卡片与计数由构建参数 branchCards 注入,配置了 learningPath 的分支页顶部会注入学习路径入口。
首页不按单一命令栈组织,而是把 Linux、Windows、macOS、Kubernetes、DevOps、排障、指南、中间件、教程、AI 与 MLOps、Office 作为十一个并列入口;页脚保留“全部条目”“故障诊断向导”“每日复习”、收藏提示、备案号与署名。
站点在“查”之外提供一条“学”的路径,相关页面集中在指南分支的“学习路径”类目:
/guide/learning-paths.html:总入口,列出 12 条领域路径、4 条岗位路径、12 个心智模型和 35 个故障演练,并给出六周推进建议;技术选型从technology-selection-map的七条决策树进入。- 学习路径:每个领域 4 个阶段,每阶段含阅读顺序(通常 7–13 个真实站内链接)、动手任务和过关标准,如
linux-learning-path、k8s-learning-path;另有可观测性、数据库、网络三条跨域路径。 - 心智模型:每个领域一页,只讲 5–7 个核心概念和它们的关系,如
linux-mental-model、observability-mental-model。 - 故障演练:教程分支
lab类目的 35 页(12 个基础、10 个进阶、13 个变更/恢复),在 kind、Docker Compose 或临时目录里注入故障,按“观察 → 判断 → 修复 → 复盘”练习,不碰生产;其中 13 个变更/恢复演练覆盖 K8s 升级、证书轮换、数据库切换、etcd 快照恢复、区域故障、Redis 切换、Kafka broker 替换、备份恢复验证、Velero 恢复、PostgreSQL PITR、Kafka 恢复、Elasticsearch 恢复和 DNS 提供商切换;lab-learning-path给出四周基础计划和进阶插入方式;各 Lab 的实际执行程度、验证限制和下一批计划见 LAB-SMOKE-STATUS.md。 - 故障复盘:排障分支的 15 篇匿名化合成案例(如
incident-dns-ndots、incident-etcd-quorum),按“现象 → 时间线 → 影响面 → 误导线索 → 根因 → 修复 → 预防”展开,用于练习从错误线索中收敛。 - 恢复 Runbook:指南分支的
runbook-etcd-restore、runbook-velero-restore、runbook-postgres-pitr、runbook-kafka-restore、runbook-es-restore、runbook-k8s-upgrade、runbook-cert-rotation、runbook-db-failover、runbook-redis-failover、runbook-kafka-broker-replace、runbook-dns-failover、runbook-backup-restore-verification,按“前置检查 → 恢复步骤 → 验证 → 失败回滚”组织;新增页面均从事故响应手册、排障学习路径和灾难恢复页手工入链,其中升级、证书、切换、etcd 恢复和区域综合演练有对应的lab-*演练页。 - 平台生命周期:
platform-lifecycle-matrix汇总操作系统、Kubernetes 与 DevOps 工具的支持窗口和升级节点;version-eol-matrix继续维护 K8s/AI/中间件的版本与 EOL。 - 速查与快捷键:
cheatsheet-index按系统、K8s、网络、数据库、DevOps、安全和 AI 汇总 42 张速查表;shortcuts-overview汇总 Windows、macOS、Linux 桌面、终端、浏览器、VS Code 和 Office 七类快捷键;指南分支保留三件套总表,Office 分支另有 Word、PowerPoint 与 Excel 的快捷键专题页。 - 公开事故复盘:指南分支收录 AWS S3 2017、GitLab 2017、GitHub 2018、Cloudflare 2019/2020、CircleCI 2023、Slack 2021、Datadog 2023、Roblox 2021、Facebook 2021、Google Cloud 2019、AWS Kinesis 2020 共 12 篇摘要与检查清单,事实以原始报告为准;
public-postmortem-index按根因分组,把事故、教训和对应 Runbook 串起来。 - 精确错误页:排障分支覆盖
x509、connection reset、context deadline exceeded、i/o timeout、TLS handshake timeout等精确报错;Windows/macOS 排障单独成类。 - 企业运维:Windows 侧新增 WinRM、GPO 诊断、AD 复制排障、Defender/Intune;macOS 侧新增 MDM、FileVault、钥匙串,覆盖注册、策略下发、复制健康和凭据管理。
- 读完自测:全部 2,100 个页面在页尾有 3 道自测题,答案折叠;
/review.html从全站 6,300 道题中抽题,支持按分支筛选、只练错题、连续答对两次移出随机池、每日一题和掌握进度。 - 版本与生命周期:指南分支的
version-eol-matrix集中记录 Kubernetes、AI 推理与中间件的当前版本、EOL/归档状态和迁移建议;npm run freshness负责检查这些页面的最后核对日期。 /diagnose.html:6 棵可点击的故障决策树,覆盖 502/504、Pod Pending/CrashLoop、磁盘满/inode、DNS/网络、CPU/负载和数据库连接/慢查询;每步给出引导问题、验证命令和对应条目。
- 长页目录:正文达到 8,000 字时,在标题与简介之后自动插入本页目录,锚点直接跳到对应章节;短页不显示,避免噪声。
- 相关命令:自动推荐按“同分类同前缀 → 同分类 → 同前缀 → 字母序邻居”排序,以卡片形式展示命令名、所属分支与一句话说明,比纯字母邻居更贴近当前主题;累计核对 590 个高频页,为其中 583 页补齐 4–6 条跨工具链的手工相关命令,AI、DevOps、K8s、中间件、教程、指南、Windows、macOS 的相关命令覆盖均达到 100%,Linux 提升到 71%。
- 面包屑、上一条/下一条与手工维护的
## 相关命令区块保持原样;页面已有手工相关命令时不再叠加自动推荐。版本敏感页显示“版本信息最后核对”日期。 - 分类页会显示“先读这三篇”,由
assets/data/category-featured.json配置;构建期校验 slug 必须属于该分类,写错直接失败。 - 搜索支持别名(如
k8s→ kubectl、ripgrep→ rg、fdfind→ fd),配置在assets/data/search-aliases.json。 - 命令页底部有“遇到问题?”入口,按
assets/data/troubleshoot-links.json链到对应排障页;顶部按分支显示“系统学习”入口。
新增工具或概念页时,建议在页尾补 ## 读完自测;学习路径、心智模型和故障演练的写法见 CONTRIBUTING。所有内容页的站内链接统一用相对路径(../k8s/pod.html),因此 public/ 可以在站点根、子路径或本地 file:// 下直接预览。
- Windows 分支:CMD 文件/系统/网络命令、21 个 PowerShell 核心 cmdlet、WSL 与
wslconfig,以及 Windows Server/AD 的dcdiag、repadmin、dsquery、diskpart、wbadmin等;企业场景补充winrm、gpo-diagnostics、ad-replication、defender-intune。系统操作、注册表、防火墙、计划任务、更新、磁盘、恢复、远程桌面和用户账户放在指南分支的「Windows 与 PowerShell」分类。 - macOS 分支:BSD 文件命令、
launchctl/pmset/softwareupdate/tmutil/csrutil等系统命令、网络工具、Xcode 命令行工具与 Homebrew、diskutil/hdiutil磁盘维护,以及mdm、filevault、keychain企业运维;指南分支提供 macOS 学习路径、心智模型与 Linux↔macOS 对照。 - Vim 系列:
vim-basics、vim-advanced、vim-config-plugins、vim-vs-neovim,并扩写了vim-cheatsheet与linux/vi。 - 快捷键:Windows、macOS、Linux 桌面、终端、浏览器、VS Code 七页,加上指南分支的三件套总表和 Office 分支的 Word、PowerPoint、Excel 专题页,统一按场景表格组织,标注平台差异与容易误按的组合。
所有新页都补了 3 道「读完自测」,并自动进入 /review.html 题库。
首页首屏“小彩蛋”行有一个「🎮 贪吃蛇」入口,页面在 /snake.html。与俄罗斯方块同为站内的非命令页:
不套顶栏与搜索框,由 template/snake.ejs + assets/js/snake-core.js(纯逻辑)+
assets/js/snake.js(渲染/输入)组成,随 npm run build 一起产出。
按键:方向键控制,回车确认(开始 / 继续 / 再来一局),空格返回上一级 (未开始与结束界面直接回首页,游戏中则暂停)。触屏设备会显示四个方向按钮。
首页首屏“小彩蛋”行另一个入口「🧱 俄罗斯方块」,页面在 /tetris.html。与贪吃蛇同构:
template/tetris.ejs + assets/js/tetris-core.js(纯逻辑)+ assets/js/tetris.js(渲染/输入)。
按键:←→ 移动(按住连发)、↑/X 顺时针、Z 逆时针、按住 ↓ 软降、回车 硬降、
C 暂存、空格 暂停或返回(与贪吃蛇一致)。触屏底部五个按钮,▼ 轻点软降一格、
长按 0.25 秒硬降。
规则:7-bag 随机、SRS 踢墙、500ms 锁定延迟、幽灵落点、下一块预览、暂存(每块限一次)、 消行闪烁;单/双/三/四行计 100/300/500/800 分 × 等级,每 10 行升级。
两个游戏页都是 ES module,必须经 HTTP 打开 —— 直接双击
build/*.html(file://)不会运行。 本地预览用npx serve build或python3 -m http.server -d build 8000。
npm test 跑游戏核心逻辑与构建辅助函数的单测(需要 Node ≥ 22)。
在对应分支目录下新建 command/<分支>/<slug>.md,格式:
<slug>
===
一行中文描述
## 补充说明
**<slug>命令** 是……
### 语法
```shell
命令示例- ……
其他命令— 说明
页面有两种写法,按分支沿用现有风格:
- **Linux(紧凑速查)**:描述之后写 `## 补充说明`,示例用 `### 常用示例`,坑点用 `## 易错点与排错`。存量页多在 20–120 行(中位约 56 行),不强制完整四段式。
- **Kubernetes(完整条目)**:180–280 行(中位约 244 行),包含 `## 补充说明`、`### 语法`、`### 注意`、`### 相关命令`、`### 参考链接`。
**两条硬性规则(两种写法都适用):**
1. **第一行必须与文件名(去掉 `.md`)完全一致。** 产物文件名取标题,而链接取文件名 —— 二者不一致必然 404。构建会拦截并报错。
2. **文件名必须是 ASCII slug**(`pod`、`kube-proxy`),不能有空格或中文。中文只能出现在描述与正文里。
描述取自 `===` 之后、第一个 `##` 之前的内容,进搜索索引。
## 新增一个分支
1. 建目录 `command/<分支id>/`,放入 `.md`
2. 在 `branches.json` 的 `branches` 数组里加一条:
```json
{
"id": "docker",
"name": "Docker",
"desc": "容器运行时与镜像管理",
"searchPlaceholder": "搜索 Docker 命令",
"default": false
}
npm run build
分支标签自动出现在首页与所有内页顶栏,搜索索引、总览页分组、计数全部自动更新。无需改动任何代码。
id 必须与目录名一致。"default": true 只能有一个。可选字段:seo.label / seo.intro(分支页标题与介绍,{n} 会替换为条目数)、content: true(按内容页生成标题,不套用“命令详解”)、unit(页脚量词)、learningPath(分支页的学习路径入口)。首页热门命令在 site.hotCommands 中维护。
npm run validate # 命名与结构校验
npm run content-report # 内容质量与覆盖率报告
npm run content-graph # 编辑性入链与孤立页报告
npm run check-links # 产物内链完整性(零 404)
npm run check-external # 参考链接章节的外部 URL 可用性(可选 --strict)
npm run freshness # 版本敏感页与已登记页的最后核对日期
npm run quiz-audit # 自测题质量(答案过短、缺少原因的是非题)
npm run verify # validate + build + check-links
npm run package # verify + 暂存 public/ + 打包 public.zip(可直接上传)npm run package 产出的 public.zip 与 build/ 逐字节一致 —— 打包用系统
zip 并排除 __MACOSX/.DS_Store(Linux/Windows 解包不会多出一堆 ._*),
完成后还会自检条目数与解压体积。public/ 与 public.zip 均为本地暂存产物,
每次发布重新生成。
npm run freshness 默认扫描 AI、Kubernetes、中间件三个分支中的版本敏感页,以及所有分支中已登记到 assets/data/content-freshness.json 的页面;登记即检查,不再依赖版本号正则是否命中。它列出未登记与超过 180 天的页面;--all 扫描全部分支,--strict 在有未登记/过期页面时返回非零退出码。完成一次审计后,把对应页面路径与日期写进登记表即可。
npm run content-graph 统计 Markdown 中指向站内页面的编辑性入链,默认列出 ≤1 条入链的页面、零入链页和分支汇总;--branch=guide --max=1 可只看指南分支。仓库同时提供每月自动执行的外链巡检工作流(.github/workflows/external-links.yml),报告保留 90 天。
npm run check-external 只读取 Markdown 的 ## 参考链接 章节,HEAD 失败时回退 GET,并对同一 URL 去重。它默认只报告不阻断;需要让 CI 失败时加 --strict,可用 --limit、--timeout、--concurrency、--retry 控制检查规模;assets/data/external-link-allowlist.json 的 host 仅对 403/429 生效,--no-allowlist 可关闭。2026-10-25 首轮清理将 Linux 的 67 个 URL 替换为可用官方页面、删除 17 个无可靠替代的死链;非 Linux 分支替换 35 个、删除 19 个,另有 2 个确认已恢复;二次复检又清理 19 个 404,403/超时按 host 汇总在 docs/external-link-audit-2026-10-25.md。
构建会自动产出:
robots.txt:允许抓取,并指向https://www.dos2unix.cn/sitemap.xmlsitemap.xml:首页、分支页、hot.html、diagnose.html、分类页与全部命令页(2,212 条)- 每页独立的
<title>/meta description/canonical/ Open Graph - 详情页 JSON-LD:
BreadcrumbList+FAQPage;Lab 页额外输出HowTo 404.html:托管平台若默认读取根目录 404 页面,可直接生效(不需要 nginx)
标题与描述的文本处理在 scripts/lib/seo.mjs,页面级参数在 scripts/build.mjs 的渲染段集中生成,不再使用模板拼接。
list.html、snake.html、tetris.html、404.html 均为 noindex,follow。
当前构建规模:2,217 个 HTML、2,100 个内容页、sitemap 2,212 条、站内链接 86,262 条(校验零 404)。
command/<branch>/categories.json 定义分支的二级分类:
categories: 分类 id、名称、顺序、短描述desc、长描述longDescassignments: 每个页面 slug → 分类 id
当前有十一份:
command/linux/categories.json:16 个分类、862 条command/windows/categories.json:6 个分类、93 条command/macos/categories.json:5 个分类、61 条command/k8s/categories.json:12 个分类、274 条command/devops/categories.json:10 个分类、97 条command/troubleshoot/categories.json:10 个分类、170 条command/guide/categories.json:12 个分类、201 条command/middleware/categories.json:11 个分类、71 条command/tutorial/categories.json:3 个分类、90 条command/ai/categories.json:7 个分类、146 条command/office/categories.json:6 个分类、35 条
构建时会校验:
- 每个
command/<branch>/*.md必须出现在assignments里 assignments里的 slug 必须有对应页面- 每个分类至少有 1 个页面
分类页自动生成到 /<branch>/category/<id>/,并加入 sitemap.xml(priority 0.7)。
新增页面时,先在对应 categories.json 的 assignments 里归类,否则构建失败。
npm run build # 先生成 sitemap.xml
npm run baidu:push # 默认推送 www 域名,最多 100 条新增/变更
npm run baidu:push -- --limit=50
npm run baidu:push -- --all
npm run baidu:push -- --site=dos2unix.cn # 推送裸域版本
npm run baidu:push -- --dry-runToken 读取顺序:--token= > BAIDU_TOKEN 环境变量 > .baidu-token 文件(gitignore)。
已推送状态记录在 deploy/baidu-pushed.json,只有内容变化才会再次推送。
先部署新版本,再执行推送——否则百度抓到的是旧页面。
首页底部的「今日访问 / 近 7 天」数据完全自建,不接第三方:
assets/js/visits.js在页面加载时 POST 到本站/api/visit.php;首页把返回的今日 PV/UV 和近 7 天数据渲染成迷你柱状图。server/visit.php是单文件 PHP 接口,支持 SQLite(默认)和 MySQL 5.7+;虚拟主机用 MySQL,独立服务器可用 SQLite。- 只存聚合计数和按天加盐的访客哈希,不存原始 IP、UA、URL;不使用 Cookie。
- 已知爬虫 UA、空 UA 不计;DNT=1 的访客不计数,但仍通过
GET /api/visit.php?stats=1只读显示聚合数据;预渲染页在激活后再决定上报或只读。 - 所有部署(GitHub Pages、任意域名)统一请求主站
https://www.dos2unix.cn/api/visit.php;只读展示对所有域名开放(CORS*),写接口(POST)只允许config.php的allowed_origins白名单。 config.php配置secret后,访客/IP 哈希改用 HMAC;数据库被拖走也无法直接枚举 IP。- PV = 页面加载次数;UV = 当日去重访客(优先 localStorage 随机 ID,存不下时回退 IP 哈希)。UV 明细约保留 180 天(低频清理),PV 长期保留。
- 接口内置 PHP 限流(默认每 IP 每分钟 120 次,
rate_limit可调/关闭),不需要 nginxlimit_req也能防基本刷量。
适用于只有 FTP/面板、没有 nginx 配置和 shell 的虚拟主机。要求 PHP 7.4+(推荐 8.x)、pdo_mysql、MySQL 5.7+。
-
上传接口和配置模板到网站根目录的
api/:htdocs/api/visit.php ← server/visit.php htdocs/api/config.php ← 由 server/config.sample.php 复制后填写 htdocs/api/schema.sql ← 可选,数据库用户没有 CREATE 权限时导入 -
在面板「数据库信息」里找到 MySQL 主机、库名、用户名、密码,填进
config.php的dsn/user/pass;再加一行secret(用openssl rand -hex 32生成)。密码和 secret 只放服务器上,不要提交到仓库。 -
数据库用户通常已有本库全部权限,接口首次请求会自动建表;如果只有增删改查权限,用 phpMyAdmin 导入
schema.sql。 -
不需要改 nginx,也不需要 cron。前端统一请求
https://www.dos2unix.cn/api/visit.php;写接口只允许config.php的allowed_origins白名单,新增域名在配置里加一行即可,只读展示不受限制。 -
验收:
curl -X POST https://www.dos2unix.cn/api/visit.php \ -H 'Content-Type: application/json' \ -H 'User-Agent: Mozilla/5.0' \ -H 'Origin: https://www.dos2unix.cn' \ -d '{"vid":"manual-test-1234"}'
- 主机前面若有共享代理/WAF,所有访客可能共用出口 IP;如果发现限流误伤,把
config.php的rate_limit调大或设为 0。 allowed_origins默认包含 www、裸域和 GitHub Pages;新增域名在config.php里加一行。未列入的 Origin 写请求返回 403,但只读展示仍然可用。
需要 PHP 8+、pdo_sqlite 和 PHP-FPM。接口放在 webroot 外,静态站发版不会覆盖它:
# 1. 建目录并上传接口(路径按实际面板调整)
mkdir -p /www/wwwroot/dos2unix.cn-api/data
scp server/visit.php root@<server>:/www/wwwroot/dos2unix.cn-api/visit.php
chown -R www:www /www/wwwroot/dos2unix.cn-api
chmod 750 /www/wwwroot/dos2unix.cn-api/data# 2. http 块:按 IP 限流(可选;PHP 内置限流也会生效)
limit_req_zone $binary_remote_addr zone=visits:10m rate=5r/s;
# 3. 站点配置:把 /api/visit.php 映射到 webroot 外的 PHP 文件
location = /api/visit.php {
limit_req zone=visits burst=10 nodelay;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /www/wwwroot/dos2unix.cn-api/visit.php;
fastcgi_param SCRIPT_NAME /api/visit.php;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 按实际 socket 或 127.0.0.1:9000 改
}-
若面板启用了
open_basedir,把/www/wwwroot/dos2unix.cn-api/加进去;否则 PHP 读不到 webroot 外的文件。 -
SQLite 位置可用
VISITS_DB环境变量覆盖;目录需要 PHP-FPM 用户可写。 -
接口首次请求会自动建表;建议每天备份一次:
sqlite3 /www/wwwroot/dos2unix.cn-api/data/visits.sqlite \ ".backup '/www/backup/visits-$(date +%F).sqlite'"保留最近 14 天即可。
-
静态站按原流程发版;
server/visit.php有改动时单独上传,不会随npm run package走。
虚拟主机和独立服务器都用同一个路径 /api/visit.php。上面的 curl 应返回 {"today":{"pv":...,"uv":...},"days":[...],"updated":"HH:MM"}。打开首页滚到底部,应看到统计条;接口失败时区块保持隐藏。
只读接口(DNT 前端使用,不计数):
curl 'https://www.dos2unix.cn/api/visit.php?stats=1'跨域预检(GitHub Pages 在白名单内,应返回 204 且 Access-Control-Allow-Origin 回显该 Origin):
curl -i -X OPTIONS https://www.dos2unix.cn/api/visit.php \
-H 'Origin: https://dos2un1x.github.io' \
-H 'Access-Control-Request-Method: POST' \
-H 'Access-Control-Request-Headers: content-type'非白名单 Origin 应返回 403,且不带 CORS 头:
curl -i -X OPTIONS https://www.dos2unix.cn/api/visit.php \
-H 'Origin: https://evil.example' \
-H 'Access-Control-Request-Method: POST' \
-H 'Access-Control-Request-Headers: content-type'npm test # 纯逻辑单测;接口集成测试默认跳过
docker build -f test/php-mysql.Dockerfile -t command-hub-php-mysql:8.3 .
npm run test:visits-api # SQLite + MySQL 5.7 两套 Docker 集成测试公开写接口无法彻底防刷,allowed_origins 只拦浏览器跨站写(curl/爬虫可伪造 Origin);PHP 限流 / nginx limit_req 仍是主要防线。如果数字可信度要求很高,可以改用 nginx access.log 口径(直接从服务端日志聚合),代价是数据有 10 分钟延迟。
js/dt.js 里的每条记录形如:
{"n":"helm","p":"/linux/helm","d":"Kubernetes包管理器","b":"linux"}p 是完整路径(含分支),因此链接拼接是 ${站点根}${p}.html。这也是构建脚本能直接从 p 反推源文件路径(command/linux/helm.md)的原因。
| 分支 | 页面 | 说明 |
|---|---|---|
| Linux | 862 | 基础命令集 + 现代 CLI/诊断/开发/网络/备份/密钥/数据/系统工具,数据库客户端与语言运行时,Git 进阶与数据库服务端运维,存储/网络/终端效率/主机安全,LUKS/DRBD/GlusterFS 与 Doris/StarRocks/Druid/Pinot,OpenSCAP/SSSD/PAM/Firejail/TargetCLI/NBD/BIRD/StrongSwan 与 ripgrep/btop,以及 bcc-tools/火焰图/namespace/cgroup v2/page cache/IO 调度/网络栈/内存回收/eBPF 探针/sysdig 等性能与 eBPF 工具 |
| Windows | 93 | CMD 文件/系统/网络命令、21 个 PowerShell 核心 cmdlet、WSL 与 wslconfig、Windows Server/AD 的 dcdiag/repadmin/dsquery/diskpart/wbadmin 等诊断与运维命令,以及 WinRM、GPO 诊断、AD 复制排障和 Defender/Intune 策略排查 |
| macOS | 61 | BSD 文件命令、launchctl/pmset/softwareupdate/tmutil/csrutil 等系统命令、ifconfig/tcpdump/dscacheutil 等网络工具、Xcode 命令行工具与 Homebrew、diskutil/hdiutil 磁盘维护,以及 MDM、FileVault 与钥匙串管理 |
| DevOps | 97 | GitHub Actions、GitLab CI、Jenkins、Buildkite、发布自动化、云 CLI、Terraform/OpenTofu/Pulumi/Ansible、Helmfile/cdk8s、ORAS/SLSA/in-toto、tfsec/KICS/TFLint/Terrascan、Atlantis/Infracost/Backstage,以及 SLO/错误预算、事故指挥/复盘、容量预测、FinOps、IDP、策略即代码、混沌工程、渐进式发布、多集群、DR 演练、on-call/runbook/toil 等 SRE 与平台工程实践 |
| 排障 | 170 | 按报错/现象组织:系统、磁盘、网络、权限证书、JVM/Go/Node、etcd/APIServer/CNI/CSI、Nginx、MySQL/PostgreSQL、Redis/Kafka/RabbitMQ、K8s 控制面与中间件连接问题,以及 Python/Ruby/PHP 运行时、MongoDB/ClickHouse/Pulsar、IPv6/gRPC/WebSocket/DNS ndots/TCP 状态等运行时与数据排障 |
| 指南 | 201 | 工具对比、速查表、路线图/检查清单、学习路径与心智模型、Windows 系统操作、PowerShell 概念、Vim 系列、快捷键与跨平台对照,以及恢复 Runbook、公开事故复盘、复盘索引、技术选型决策地图、速查表索引、快捷键总览和平台生命周期矩阵;学习路径覆盖 12 条领域路径、4 条岗位路径和 12 个心智模型,并串联教程分支的 35 个故障演练,覆盖选型、上线检查、性能排查、可观测性、容器安全、CI/CD 成熟度、SRE 值班、迁移、成本、事故响应、AI 基础设施、RAG 与 GPU 集群 |
| 中间件 | 71 | Elasticsearch/OpenSearch/Logstash/Kibana/Filebeat/Vector、Kafka/ZooKeeper/Schema Registry/ksqlDB/RabbitMQ、Nginx/HAProxy/Keepalived/Keycloak、Nexus/JFrog、PostgreSQL/PgBouncer/ProxySQL/MySQL Router,以及 MQTT、Nacos/Apollo、Temporal/Airflow、Qdrant/Milvus、Valkey/KeyDB,以及 RocketMQ/Dubbo/ShardingSphere/Seata/Canal/Arthas 等 Java 生态中间件 |
| 教程 | 90 | 迁移与升级(MySQL→PostgreSQL、Elasticsearch→OpenSearch、Prometheus→VictoriaMetrics、VM/Compose→Kubernetes 等)、搭建实战(Argo Workflows、Tekton、Flux、Gatekeeper、Falco、OpenBao、Temporal、Airflow、ClickHouse、StarRocks、MinIO、Ceph 等),以及 35 个本地故障演练(磁盘满/inode/CPU/网络/K8s/MySQL/PostgreSQL/Kafka/Redis/OOM/镜像/证书/Helm/etcd/K8s 升级/数据库切换/区域故障等) |
| AI 与 MLOps | 146 | GPU 监控与容器运行时、CUDA/NCCL、Ollama/vLLM/SGLang/TGI/TensorRT-LLM 推理、torchrun/DeepSpeed/Ray/Megatron 训练、PEFT/TRL/Axolotl/Unsloth 微调、LangChain/LlamaIndex/RAGFlow/Dify 应用、MLflow/DVC/W&B/Langfuse 实验与可观测性,以及 Ragas/DeepEval/Guardrails/Llama Guard/promptfoo/Inspect AI/garak/LangSmith 评估与红队、LangGraph/CrewAI/AutoGen/MCP/DSPy/Pydantic AI/smolagents/OpenAI Agents SDK/A2A Agent、GraphRAG/reranker/Milvus 运维、推理调优/量化/投机解码、Weaviate/Chroma 运维、Triton/Ray Serve/Slurm/模型注册,以及 GPU Xid、NCCL 卡死、vLLM OOM、模型加载失败、推理延迟、Ray 调度、训练 loss 异常、checkpoint 损坏、分布式训练卡死、GPU 节点生命周期、RAG 召回质量、embedding 迁移、Agent 运行时观测和推理自动扩缩容等运行态排障 |
| Office | 35 | Excel 快捷键、单元格与填充、排序筛选、条件格式、数据验证、冻结打印、图表;SUMIFS/IF/VLOOKUP/XLOOKUP/INDEX-MATCH/COUNTIFS/文本/日期函数;透视表、动态数组、Power Query;录制宏、VBA 语法、Range/Cells、循环、工作簿与错误处理;Word 快捷键、样式、目录、分节页眉、邮件合并、修订、域与通配符替换;PowerPoint 快捷键、母版与版式 |
Kubernetes 分支按方向划分:
集群与节点 kubeadm kubelet kube-proxy kube-apiserver etcd crictl ctr kubeconfig node ...
调度与资源 kube-scheduler affinity taints-tolerations priority-class poddisruptionbudget
topology-spread resource-quota limitrange qos descheduler cluster-autoscaler vpa
工作负载 pod deployment statefulset daemonset job cronjob replicaset hpa
网络 service ingress networkpolicy coredns cni calico cilium flannel metallb multus ...
配置与存储 configmap secret pvc pv storageclass namespace csi longhorn rook ceph ...
安全 rbac serviceaccount pod-security-admission securitycontext admission-webhook
opa gatekeeper kyverno falco trivy cosign sealed-secrets cert-manager vault ...
可观测性 prometheus alertmanager grafana loki fluent-bit jaeger opentelemetry thanos ...
CI/CD argocd flux jenkins tekton argo-workflows argo-rollouts keda knative ...
服务网格 istio linkerd envoy kiali gateway-api contour traefik apisix kong nginx-ingress ...
Operator crd operator kubebuilder operator-sdk olm controller-runtime aggregated-apiserver
发行版 k3s k0s talos microk8s k3d minikube kind kubeone rancher karmada kubevela openshift
中间件 postgres-operator mysql-operator redis-operator strimzi elastic-operator ...
运维工具 k9s kustomize velero metrics-server kube-bench kube-state-metrics chaos-mesh ...
现代平台 crossplane karpenter tetragon kubewarden kueue yunikorn
envoy-gateway kgateway clusternet juicefs piraeus
external-secrets sops kube-burner kwok kube-ovn
调试与成本 kubectx kubectl-tree kubectl-cost rbac-police
DevOps 分支按方向划分:
持续集成与交付 github-actions gitlab-ci jenkins gitlab-runner act drone buildkite-agent
buildkite circleci concourse dagger woodpecker gitea-actions tkn backstage
发布自动化 semantic-release release-please goreleaser renovate dependabot
代码质量 pre-commit lefthook commitlint ansible-lint molecule
云厂商 CLI aws gcloud gsutil bq az aliyun doctl hcloud openstack oci
基础设施即代码 terraform opentofu terragrunt pulumi ansible-playbook ansible-vault
ansible-galaxy packer vagrant nomad helmfile cdk8s atlantis infracost tflint
容器与镜像 docker-compose docker-buildx buildctl crane regctl dive oras
安全与供应链 grype syft hadolint gitleaks semgrep tfsec kics terrascan
slsa-verifier in-toto
可观测性 promtool amtool logcli otel-cli
消息系统 kafka-topics nats pulsar
排障分支按故障域划分:
系统与进程 oom-killed too-many-open-files cpu-100 load-average-high
zombie-process process-stuck memory-leak boot-failure
jvm-gc-overhead metaspace-oom thread-deadlock goroutine-leak
node-heap-oom event-loop-blocked hung-task time-drift
磁盘与文件系统 no-space-left inode-exhausted read-only-filesystem disk-io-high
fsck-failed mount-failed disk-readonly
网络与 DNS connection-refused connection-timeout dns-resolution-failed port-in-use
502-bad-gateway 504-gateway-timeout tls-handshake-failed packet-loss
mtu-blackhole nat-port-exhausted
权限与证书 permission-denied sudo-failed selinux-denied certificate-expired
certificate-untrusted ssh-permission-denied
Kubernetes crashloopbackoff imagepullbackoff pod-pending pod-evicted probe-failed
node-notready k8s-dns-failed k8s-pvc-pending etcd-slow apiserver-429
kubelet-not-ready cni-plugin-failed csi-mount-failed terminating-stuck
服务与中间件 redis-connection-failed mysql-connection-failed postgres-connection-failed
kafka-consumer-lag postgres-lock-wait postgres-connection-exhausted
redis-hotkey elasticsearch-yellow rabbitmq-queue-backlog
指南分支共 12 个分类、201 页。下面按用途列出主要学习内容(42 个工具对比与替代、44 个速查/矩阵/索引页、15 个路线图/检查清单、30 个学习路径与心智模型、6 个术语与索引页):
工具对比 ansible-vs-puppet ansible-vs-terraform argocd-vs-flux
btrfs-vs-zfs cgroup-v1-vs-v2 containerd-vs-cri-o curl-vs-wget
docker-vs-podman envoy-vs-nginx ext4-vs-xfs grafana-vs-kibana
grpc-vs-rest haproxy-vs-nginx helm-vs-kustomize
iptables-vs-nftables kafka-vs-pulsar kafka-vs-rabbitmq
loki-vs-elk mysql-vs-mariadb nats-vs-kafka nats-vs-rabbitmq
nginx-vs-caddy podman-vs-containerd postgres-vs-mongodb
prometheus-vs-victoriametrics prometheus-vs-zabbix psql-vs-mysql
redis-vs-memcached systemd-vs-sysvinit
terraform-vs-cloudformation traefik-vs-nginx ollama-vs-vllm
vllm-vs-sglang qdrant-vs-milvus emqx-vs-mosquitto
temporal-vs-airflow valkey-vs-redis crossplane-vs-terraform
karpenter-vs-cluster-autoscaler envoy-gateway-vs-nginx-ingress
pgvector-vs-qdrant deprecated-commands
速查与矩阵 ansible-cheatsheet awk-cheatsheet bash-cheatsheet
curl-cheatsheet docker-cheatsheet find-cheatsheet git-cheatsheet
grep-cheatsheet jq-cheatsheet k8s-troubleshooting-cheatsheet
kafka-cheatsheet kubectl-cheatsheet linux-permission-cheatsheet
logql-cheatsheet mysql-cheatsheet
network-troubleshooting-cheatsheet nginx-cheatsheet
openssl-cheatsheet postgres-cheatsheet promql-cheatsheet
redis-cheatsheet sed-cheatsheet ssh-cheatsheet
systemd-cheatsheet tcpdump-cheatsheet terraform-cheatsheet
tmux-cheatsheet yq-cheatsheet helm-cheatsheet
kustomize-cheatsheet dockerfile-cheatsheet argocd-cheatsheet
gpu-cheatsheet kubectl-jsonpath-cheatsheet
linux-signal-cheatsheet http-status-cheatsheet dns-cheatsheet
tls-cheatsheet k8s-rbac-cheatsheet cron-cheatsheet
regex-cheatsheet version-eol-matrix platform-lifecycle-matrix
cheatsheet-index
路线图 k8s-production-checklist linux-performance-triage
observability-roadmap database-selection-roadmap
container-security-checklist cicd-maturity-roadmap
sre-oncall-checklist migration-readiness-checklist
cost-optimization-checklist incident-response-playbook
ai-infra-roadmap rag-production-checklist gpu-cluster-checklist
platform-engineering-roadmap k8s-upgrade-checklist
学习路径 k8s-learning-path linux-learning-path devops-learning-path
troubleshoot-learning-path middleware-learning-path
ai-learning-path security-learning-path
observability-learning-path database-learning-path
network-learning-path lab-learning-path learning-paths
windows-learning-path macos-learning-path role-sre-onboarding
role-backend-oncall role-data-platform role-ai-infra-oncall
心智模型 linux-mental-model k8s-mental-model devops-mental-model
troubleshoot-mental-model middleware-mental-model ai-mental-model
security-mental-model observability-mental-model
database-mental-model network-mental-model windows-mental-model
macos-mental-model
术语与索引 build-index migration-index error-code-index linux-command-map
linux-long-tail-index glossary-index
另有五个入口页:technology-selection-map 用七条决策树把 42 篇工具对比与替代页分流,public-postmortem-index 按根因把 12 篇公开复盘和 12 篇 Runbook 串起来,cheatsheet-index 汇总 42 张速查表,shortcuts-overview 汇总 7 个平台的快捷键页,glossary-index 汇总 122 条术语与缩写。
中间件分支按服务划分:
日志与搜索 elasticsearch opensearch logstash kibana filebeat vector
消息与协调 kafka kafka-broker zookeeper schema-registry ksql rabbitmq
kafka-connect mirrormaker debezium redpanda
网关与接入 nginx haproxy keepalived keycloak oauth2-proxy
varnish openresty
物联网消息 emqx mosquitto vernemq nanomq
配置中心 nacos apollo
工作流与调度 temporal airflow prefect dagster
制品与仓库 nexus jfrog
数据与连接池 postgresql pgbouncer proxysql mysql-router
高可用与备份 patroni orchestrator redis-cluster mongodb-replica-set mysql-shell
elasticsearch-cluster clickhouse-keeper tempo opensearch-dashboards
pgbackrest wal-g percona-xtrabackup
缓存与云托管 memcached mongodb-atlas valkey keydb dragonfly garnet
向量检索 qdrant milvus weaviate chroma pgvector
全文搜索 meilisearch typesense solr
Java 生态 rocketmq dubbo shardingsphere seata canal arthas
教程分支分三类:
迁移与升级 migrate-docker-to-containerd migrate-iptables-to-nftables
migrate-cgroup-v1-to-v2 migrate-mysql57-to-mysql8
migrate-postgresql-major-version migrate-nginx-to-caddy
migrate-helm-to-kustomize migrate-jenkins-to-github-actions
migrate-elk-to-loki migrate-redis-to-valkey
migrate-ingress-nginx-to-gateway-api migrate-mysql-to-postgresql
migrate-elasticsearch-to-opensearch migrate-prometheus-to-victoriametrics
migrate-nginx-ingress-to-traefik migrate-jenkins-to-gitlab-ci
migrate-helm-to-argo-cd migrate-vm-to-kubernetes
migrate-docker-compose-to-k8s
搭建与实战 build-k8s-cluster build-kafka-cluster build-postgresql-ha
build-redis-cluster build-observability-stack build-cicd-pipeline
build-argocd-gitops build-istio-mesh build-velero-backup
build-vault build-keycloak-sso build-harbor build-prometheus-ha
build-loki-ha build-cert-manager build-external-dns
build-sealed-secrets build-argo-rollouts build-kyverno-policies
build-cilium-network build-postgresql-pitr build-mysql-ha
build-mongodb-replica-set build-kafka-connect build-argo-workflows
build-tekton build-flux build-gatekeeper build-falco build-openbao
build-temporal build-airflow build-clickhouse build-starrocks
build-minio build-ceph
故障演练 lab-disk-full lab-inode-exhausted lab-cpu-100 lab-network-latency
lab-pod-pending lab-crashloopbackoff lab-dns-failure lab-pvc-pending
lab-mysql-deadlock lab-postgres-connection-exhausted
lab-kafka-consumer-lag lab-redis-hotkey lab-oom-killed
lab-imagepullbackoff lab-node-notready lab-certificate-expired
lab-nginx-502 lab-helm-failed lab-kafka-rebalance
lab-es-unassigned lab-etcd-quorum lab-mysql-replication-lag
lab-k8s-upgrade lab-cert-rotation lab-db-failover lab-etcd-restore
lab-regional-failure lab-redis-failover lab-kafka-broker-replace
lab-backup-restore-verification lab-velero-restore lab-postgres-pitr
lab-kafka-restore lab-es-restore lab-dns-failover
AI 与 MLOps 分支按方向划分:
GPU 与加速 nvidia-smi nvitop nvtop cuda nccl dcgm-exporter
nvidia-container-toolkit hami gpu-burn bitsandbytes flash-attn transformers
slurm gpu-xid nccl-hang gpu-node-lifecycle
推理与服务 ollama vllm sglang llama-server triton huggingface-cli
tgi lmdeploy xinference openllm tensorrt-llm gpustack
triton-inference-server ray-serve bentoml
vllm-oom model-load-failed inference-latency
推理优化 vllm-tuning quantization speculative-decoding
训练与编排 torchrun deepspeed accelerate ray kubeflow llama-factory
peft trl axolotl unsloth megatron-lm optuna ray-scheduling
training-loss-anomaly checkpoint-corruption distributed-training-hang
rag-retrieval-quality-incident embedding-model-migration
agent-runtime-observability inference-autoscaling
RAG 与应用 langchain llamaindex ragflow dify fastgpt docling
RAG 运维 weaviate-ops chroma-ops milvus-ops graphrag reranker
评估与安全 ragas deepeval guardrails-ai llama-guard promptfoo
inspect-ai garak langsmith
Agent 与编排 langgraph crewai autogen mcp dspy pydantic-ai
smolagents openai-agents-sdk a2a
实验与数据 mlflow dvc wandb tensorboard label-studio lm-eval
langfuse phoenix evidently clearml comet neptune model-registry
Office 分支按方向划分:
Excel 基础 excel-basics excel-shortcuts excel-sort-filter
excel-conditional-formatting excel-data-validation
excel-freeze-print excel-charts
Excel 函数 excel-functions excel-sumifs excel-if excel-vlookup
excel-xlookup excel-index-match excel-countifs
excel-text-functions excel-date-functions
数据分析 excel-pivot-table excel-dynamic-arrays excel-power-query
宏与 VBA excel-macro-recording vba-basics vba-range-cells
vba-loops vba-workbook vba-error-handling
Word word-shortcuts word-styles word-toc word-page-setup
word-mail-merge word-track-changes word-fields word-find-replace
PowerPoint ppt-shortcuts ppt-master-slides
Office 页面按“适用场景 → 核心操作/语法 → 示例 → 易错点 → 相关条目 → 参考链接 → 读完自测”组织,并在涉及版本差异时标注 Excel 365/2021/2019、Word 与 PowerPoint 的桌面版/网页版边界。Excel 函数页统一说明错误值、引用方式和版本兼容;VBA 页默认使用 .xlsm,并强调宏安全、状态恢复与回滚。
其中 ecosystem-status 是一页专门的生态状态汇总:已退役/已归档的项目(含时间点与替代方案)、发生重大变更的项目(如 kube-proxy 的 IPVS 模式废弃、containerd 2.x 配置格式变更)、以及已从 CNCF 毕业的项目。写内容时如引用第三方工具,建议先对照该页确认其是否仍在维护。
2026-10 做过一次版本巡检,更新了 15 个高频页的版本号、安装清单和废弃声明(Kubernetes 1.37、Helm 3.22/4.3、Argo CD 3.5、KEDA 2.21、Karpenter 1.15、etcd 3.7、Kafka 4.x KRaft、RabbitMQ 4.x quorum 队列等),并在 ecosystem-status 增加了带日期的版本矩阵。版本会继续变化,升级前以官方 release notes 为准。
各页面的
### 注意小节记录的是经核实的真实坑点与常见误传的纠正,而非泛泛的最佳实践。
本站内容(除另有标注外)采用 LICENSE 的 MIT 许可,Copyright © 2026 dos2un1x。
全站 2100 页,按 11 个分支、98 个分类组织:
- Linux:862 页
- Windows:93 页
- macOS:61 页
- Kubernetes:274 页
- DevOps:97 页
- 排障:170 页
- 指南:201 页
- 中间件:71 页
- 教程:90 页
- AI 与 MLOps:146 页
- Office:35 页
引用第三方工具或文档时,页面内保留官方来源链接;正文、示例取舍与排错说明由本站组织。分发或复用内容时请保留 LICENSE。
扫码添加微信、加入交流群,或赞赏支持。
需要 command 私有子模块权限以完整构建?请扫码添加作者微信或加入交流群,并附上你的 GitHub 账号与用途。
| 加我微信 | 加入交流群 | 赞赏支持 |
|---|---|---|
![]() |
![]() |
![]() |
| 扫码添加作者微信 | 扫码加入交流群(7 天内有效) | 扫码赞赏支持 |


