- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
本指南以 tldr 仓库中面向阿拉伯语用户的别名页 pages.ar/linux/i386.md 为切入点,讲解 Linux 平台命令别名页(alias page)的书写规范、翻译模板机制,以及别名背后真实命令setarch的架构切换能力。读完本文,你将掌握 tldr 别名页的完整结构、多语言翻译同步的自动化流程,并能熟练使用setarch在 64 位内核上运行 32 位程序、调试传统应用。
一、i386别名页的完整结构与语义
tldr 仓库中,i386命令在 Linux 平台下并不是一个独立程序,而是setarch i386的别名。因此文档团队没有为它单独编写命令示例,而是创建了一张「别名页」,引导用户查看原命令的文档。
英文原页 pages/linux/i386.md 只有四行有效内容:
# i386 > This command is an alias of `setarch i386`. - View documentation for the original command: `tldr setarch`而本次关联的阿拉伯语页面 pages.ar/linux/i386.md 结构完全一致,仅描述文本被翻译成阿拉伯语:
# i386 > هذا الأمر هو اسم مستعار لـ `setarch i386`. - إعرض التوثيقات للأمر الأصلي: `tldr setarch`对照可知,别名页由三个固定组成部分构成:
- 标题行:以
#开头,内容为被调用的命令名i386(与文件名一致); - 描述行:以
>开头,声明“此命令是setarch i386的别名”; - 操作项:一条示例,提示用户通过
tldr setarch查看原命令文档。
这种“不重复造轮子”的做法,保证了同一命令别名在任何语言下都只有一份权威文档,避免了英文与阿拉伯语版本之间因翻译不同步而出现内容漂移。
二、别名背后的真实命令setarch
要理解i386别名页,必须了解其原命令setarch。该命令的完整文档位于 pages/linux/setarch.md,其作用是为某个程序的执行改变所报告的系统架构,主要用于兼容性测试和运行遗留(legacy)程序。系统手册为setarch提供了扩展文档(More information: <https://manned.org/setarch>)。
核心用法
在 64 位内核上运行 32 位程序:
setarch i686 {{command}}以x86_64架构启动一个 shell:
setarch x86_64 {{bash}}关闭虚拟地址空间的随机化(ASLR),用于调试依赖固定地址布局的旧程序:
setarch {{linux32}} {{[-R|--addr-no-randomize]}} {{command}}查看系统支持的所有架构:
setarch --list显示帮助信息:
setarch {{[-h|--help]}}注意i386、i686、linux32、linux64、x86_64、uname26都是setarch的架构别名,其中i386对应 32 位 x86 架构的uname报告模式,适合验证依赖旧架构标识的软件。
三、setarch的别名家族
在 tldr 仓库中,setarch名下有一组结构完全相同的别名页,全部位于 pages/linux/ 目录:
| 别名页文件 | 指向的原命令 | 含义 |
|---|---|---|
| i386.md | setarch i386 | 报告 i386 架构 |
| linux32.md | setarch linux32 | 以 32 位 Linux 模式运行 |
| linux64.md | setarch linux64 | 以 64 位 Linux 模式运行 |
| uname26.md | setarch uname26 | 报告类似内核 2.6 的 uname |
| x86_64.md | setarch x86_64 | 报告 x86_64 架构 |
以 linux32.md 为例:
# linux32 > This command is an alias of `setarch linux32`. - View documentation for the original command: `tldr setarch`这组页面共同验证了一个事实:所有架构别名都统一跳转到tldr setarch,用户只需记住一个入口即可查阅全部架构切换能力。
四、别名页的书写规范与翻译模板
tldr 的贡献指南在 contributing-guides/style-guide.md 的 “Aliases” 一节明确规定了别名页的书写方式:当某命令可以用多个名字调用(如vim可被vi调用)时,即可创建别名页,将用户引导至原命令名。官方推荐的模板为:
# command_name > This command is an alias of `original-command-name`. - View documentation for the original command: `tldr original_command_name`为保证所有语言的别名页格式一致,仓库维护了一份预翻译模板集 contributing-guides/translation-templates/alias-pages.md。其中阿拉伯语模板(见该文件的### ar小节)正是 pages.ar/linux/i386.md 的直接来源:
# example > هذا الأمر هو اسم مستعار لـ `example`. - إعرض التوثيقات للأمر الأصلي: `tldr example`将模板中的占位符example替换为真实命令名即可生成对应语言的别名页。同一文件还提供了中文、日语、法语、俄语等数十种语言的同构模板,供各语言维护者直接取用。
五、别名页的自动化生成与同步机制
从源码结构看,别名页的创建与同步由 scripts/set-alias-page.py 负责,仓库的 scripts/README.md 也将其列为可用工具。该脚本支持两种工作模式:
交互式创建:通过-p/--page参数指定目标页面,例如:
python3 scripts/set-alias-page.py -p linux/i386 -l ar脚本会以向导方式依次询问页面标题、原命令(出现在 “This command is an alias of `command`” 中)与文档命令(出现在tldr command行中),然后从alias-pages.md模板中读取对应语言模板并替换占位符。
批量同步:通过-S/--sync参数读取英文别名页并同步到所有翻译,可用-l/--language限定语言,例如:
python3 scripts/set-alias-page.py -S -l ar脚本的get_alias_command_in_page()函数会解析现有页面:先提取#标题,再匹配> 别名描述行与`tldr ...`两行命令,只有结构完全符合模板的页面才被识别为别名页(见 set-alias-page.py 中generate_alias_page_content()与sync_alias_page_to_locale()的实现)。同时提供-n/--dry-run预览变更、-s/--stage暂存改动,方便维护者核对。
六、多语言别名页的校验体系
阿拉伯语别名页不是孤立存在的。仓库共有 40 个语言目录(pages.ar、pages.zh、pages.ko等)下存在linux/i386.md,其中英文原页位于 pages/linux/i386.md。
这些页面由 lint 工具统一校验。脚本 scripts/test-tldr-lint.sh 按语言应用不同检查规则:对阿拉伯语等语言启用TLDR003、TLDR004、TLDR015等规则(如标题格式、描述行语法、示例数量),对简体中文额外启用TLDR005,而对英文原页则不做任何忽略、执行全量检查。这一机制确保了 40 个语言版本的i386别名页在任何时刻都保持与英文原页一致的结构与信息完整性。
七、总结
i386别名页虽短,却浓缩了 tldr 项目的三类核心设计:
- 信息去重:别名命令不重复编写示例,统一跳转至 setarch 文档;
- 规范化与本地化:依靠 style-guide.md 的 Aliases 规范与 alias-pages.md 的多语言模板,任何语言的别名页结构都完全一致;
- 自动化维护:set-alias-page.py 与 lint 脚本共同保证别名页可批量生成、可机器校验。
对使用者而言,i386页面传递的实战价值是:遇到i386命令时,直接执行tldr setarch即可获得完整的架构切换用法,从而在 64 位系统上顺利运行与调试 32 位遗留程序。
- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
相关推荐
tldr 仓库中的 sudoedit 别名页:从 `sudo --edit` 到多语言文档的完整解读
tldr 仓库中的 sudoedit 别名页:从 sudo edit 到多语言文档的完整解读 本文以 tldr 仓库中的 pages.bg/common/sud
文档教程知识库tldr 仓库中的 CHDIR 别名页:从 DOS 命令别名到多语言文档同步的实现解析
tldr 仓库中的 CHDIR 别名页:从 DOS 命令别名到多语言文档同步的实现解析 本指南以 pages.ar/dos/chdir.md https://l
文档教程知识库tldr 仓库中的 vdir 别名页:从 `ls -l --escape` 到多语言文档的自动同步
tldr 仓库中的 vdir 别名页:从 ls l escape 到多语言文档的自动同步 本文以 tldr 仓库中的 保加利亚语 vdir 别名页 https:
文档教程知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考