☰
tldr 仓库中的 i386 别名页解析:从 `setarch i386` 到多语言文档规范
2026/10/11 22:41:46 网站建设 项目流程
  • 文档
  • 教程
  • 知识库

【免费下载链接】tldr

Collaborative cheatsheets for console commands 📚.

项目地址:https://gitcode.com/GitHub_Trending/tl/tldr
点击查看免费下载

本指南以 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`

对照可知,别名页由三个固定组成部分构成:

  1. 标题行:以#开头,内容为被调用的命令名i386(与文件名一致);
  2. 描述行:以>开头,声明“此命令是setarch i386的别名”;
  3. 操作项:一条示例,提示用户通过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.mdsetarch i386报告 i386 架构
linux32.mdsetarch linux32以 32 位 Linux 模式运行
linux64.mdsetarch linux64以 64 位 Linux 模式运行
uname26.mdsetarch uname26报告类似内核 2.6 的 uname
x86_64.mdsetarch 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 📚.

项目地址:https://gitcode.com/GitHub_Trending/tl/tldr
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询