- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
导读
在 tldr 命令速查手册中,cs2并不是一个独立程序,而是counter strike 2的一个别名。本文以 pages.bg/linux/cs2.md 这篇保加利亚语别名页为切入点,系统讲解 tldr 别名页的文档格式、多语言模板机制、别名背后的真实命令(Linux 无头 CS2 专用服务器搭建),以及仓库配套的别名页生成/同步工具链。读完你将掌握:如何识别并阅读别名页、cs2原命令的完整用法、以及如何用 scripts/set-alias-page.py 批量维护全语言别名页。
一、什么是 tldr 别名页
tldr 手册中,当一个命令只是另一个命令的别名(alias)时,不会重复编写完整文档,而是创建一张结构化的"别名页"。其英文模板定义在 contributing-guides/translation-templates/alias-pages.md 中,核心格式固定为四行:
# example > This command is an alias of `example`. - View documentation for the original command: `tldr example`- 第一行
#:别名命令名; - 第二行
>:用一句话声明"本命令是xxx的别名"; - 第三、四行:指引用户通过
tldr xxx查看原命令的完整文档。
别名页的价值在于去重与导航:客户端在输入cs2时能立即告知用户"这不是独立命令",并给出正确的查看入口,避免为每个别名维护一份与原名重复的内容。
保加利亚语cs2别名页的完整内容
pages.bg/linux/cs2.md正是上述模板在保加利亚语(bg)下的实例,全文如下:
# cs2 > Тази команда е псевдоним на `counter strike 2`. - Виж документацията за оригиналната команда: `tldr counter strike 2`对照 alias-pages.md 中的 bg 段落(> Тази команда е псевдоним на \example`./- Виж документацията за оригиналната команда:),可以看到该页严格遵循模板:仅把example占位符替换为真实命令名cs2与counter strike 2`。这正是 tldr 多语言页面"内容等价、语言各异"原则的体现——英文页 pages/linux/cs2.md 与保加利亚语页除语言外结构完全一致。
二、cs2别名背后的真实命令:无头 CS2 专用服务器
别名页本身不含操作示例,真正的技术细节集中在原命令页 pages/linux/counter-strike-2.md。该页描述的是在 Linux 上运行无头(headless)Counter Strike 2 专用服务器的方法,共包含四条核心示例:
{{path/to}}/cs2 -dedicated +map {{de_dust2}} # 用单张地图启动一个游戏 {{path/to}}/cs2 -dedicated +map {{de_dust2}} -maxplayers {{64}} # 指定最大玩家数 {{path/to}}/cs2 -dedicated +map {{de_dust2}} -ip {{1.2.3.4}} -port {{27015}} # 指定服务器 IP 与端口 quit # [交互式] 关闭服务器参数语义可归纳如下:
| 参数 | 含义 | 典型取值 |
|---|---|---|
-dedicated | 以专用(无头)模式运行,不启动图形界面 | 固定开关 |
+map <地图> | 指定首张加载的地图 | 如de_dust2 |
-maxplayers <N> | 服务器最大玩家数 | 如64 |
-ip <地址> | 绑定服务器 IP | 如1.2.3.4 |
-port <端口> | 监听端口 | CS 系列惯例为27015(SRCDS 默认端口) |
quit | 在交互式控制台内关闭服务器 | 仅交互模式可用 |
值得注意的细节:
- 命令路径被写成
{{path/to}}/cs2这样的占位符语法。tldr 规范要求客户端将{{...}}视为可替换参数,用户应替换为自己的 cs2 可执行文件实际路径; +map采用 Valve 启动参数约定的+前缀(等价于向服务器控制台投递命令),-前缀参数则属于引擎级选项,二者不可混用;- 原页还带有一行 "More information"(更多信息)链接,指向 Valve 官方的 Counter-Strike 2 专用服务器开发者文档,供深入阅读启动参数细节的用户参考。
这四条示例覆盖了服务器运维的完整闭环:启动(含地图/人数/网络配置)→ 运行 → 关闭,可作为搭建 CS2 专属服务器的快速备忘录。
三、别名页的生成与多语言同步工具链
别名页数量庞大且遍布几十种语言,人工维护极易遗漏或走样。仓库为此提供了自动化脚本 scripts/set-alias-page.py,它负责从英文别名页出发,按各语言模板批量生成/更新翻译页。
命令行用法
# 交互式创建/更新单个别名页(推荐新贡献者使用) python3 scripts/set-alias-page.py -p linux/cs2 # 将全部英文别名页同步到所有翻译语言 python3 scripts/set-alias-page.py -S # 仅同步到指定语言(如巴西葡萄牙语) python3 scripts/set-alias-page.py -S -l pt_BR # 同步并将改动 git stage(需要仓库为 git 克隆) python3 scripts/set-alias-page.py -Ss # 干跑:只显示将要发生的改动,不落盘 python3 scripts/set-alias-page.py -Sn脚本支持的核心选项:
| 选项 | 作用 |
|---|---|
-p, --page <平台/命令.md> | 指定要创建/更新的别名页路径,进入交互向导 |
-S, --sync | 读取英文页中的别名页并同步到各翻译目录 |
-l, --language <ll/ll_CC> | 只同步指定语言(如fr、pt_BR) |
-s, --stage | 同步后对改动执行git add |
-n, --dry-run | 模拟运行,仅输出将发生的变更 |
-i, --inexact | 不强制精确匹配模板,用于识别非标准别名页 |
底层实现逻辑
从源码结构看,脚本的同步流程分为三个关键环节:
- 模板装载:
Config中的templates由 _common.py 的get_templates()提供,它读取 contributing-guides/translation-templates/alias-pages.md,按### 语言小节解析出每种语言的模板字符串,构建语言 → 模板映射; - 英文别名页发现:
get_english_alias_pages()遍历pages目录下各平台(common、linux、osx 等),对每个.md文件调用get_alias_command_in_page()解析出标题、原命令名与文档命令名,凡能解析出original_command的文件即被判定为别名页(其中IGNORE_FILES排除了tldr.md、aria2.md等特例); - 模板替换写入:
generate_alias_page_content()对选中语言的模板执行三次替换——第一次把# example的example换成别名命令名,第二次把> ... \example`中的换成原命令名,第三次把tldr example中的换成文档命令名;随后set_alias_page()比较现有页与模板差异,决定状态是added、updated` 还是跳过,最后写入对应语言的目录。
由于pages.bg/linux/cs2.md的原文与 bg 模板逐字吻合,它既可以被-p linux/cs2向导直接维护,也会在-S同步时被自动比对/更新——这就是多语言别名页保持一致性的工程保障。
四、如何在真实使用中利用这张别名页
作为终端用户
安装任一 tldr 客户端后,直接查询即可命中别名页:
tldr cs2客户端会显示"Тази команда е псевдоним наcounter strike 2"并给出提示命令tldr counter strike 2;继续执行:
tldr counter strike 2即可看到上文第二节的全部服务器启动/关闭示例。若需切换语言,可在客户端中指定bg语言环境,或查询英文原页 pages/linux/cs2.md。
作为文档贡献者
当某个命令成为别名时,正确做法是创建别名页而非复制原文档。新贡献者可用交互向导快速产出:
python3 scripts/set-alias-page.py -p linux/cs2向导会依次询问页面标题、原命令名、文档命令名,并在确认前预览即将生成的完整页面(scripts/set-alias-page.py 中prompt_alias_page_info()的实现即此流程)。脚本采用交互式提示而非位置参数,是为了规避命令名含短横线(如pacman -S)时可能出现的参数解析歧义,同时也便于在落盘前做输入校验。
五、别名页与 tldr 内容规范的衔接
- 格式即契约:别名页必须严格贴合 alias-pages.md 模板,否则
set-alias-page.py在非--inexact模式下无法将其识别为别名页; - 平台归属:
cs2属于 Linux 平台命令,因此位于linux/子目录;若某命令在多个平台均为别名,则各平台目录下会各有一份同名别名页; - 内容边界:别名页不承载操作示例,示例只存在于原命令页。阅读别名页后应始终通过
tldr <原名>跳转,避免别名页与原名页内容重复、口径不一。
通过pages.bg/linux/cs2.md这一具体实例,可以看到 tldr 在"命令去重 + 多语言翻译 + 自动化维护"三个维度上的完整设计:别名页负责轻量导航,原命令页承载深度用法,模板与脚本则保证了 40+ 种语言下内容的高度一致,这套机制对任何以"速查、协作、多语言"为核心目标的文档项目都极具参考价值。
- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
相关推荐
tldr 别名页机制解析:以保加利亚语 azure-cli 页面为例
tldr 别名页机制解析:以保加利亚语 azure cli 页面为例 azure cli 在 tldr 仓库中并不是一个独立的技术手册页,而是一张典型的"别名页
文档教程知识库tldr 别名页机制解析:以保加利亚语 `br` → `broot` 页面为例
tldr 别名页机制解析:以保加利亚语 br → broot 页面为例 本文以 tldr 仓库中 pages.bg/linux/br.md https://li
文档教程知识库深入解析 tldr 别名页机制:以保加利亚语 zcat 页面为例
深入解析 tldr 别名页机制:以保加利亚语 zcat 页面为例 zcat 在 GNU 生态中并非独立程序,而是 gzip stdout decompress
文档教程知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考