- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
本文以 tldr-pages 仓库中阿拉伯语版的go命令速查页(pages.ar/common/go.md)为骨架,逐条剖析其收录的go get、go run、go build、go test、go install、go mod init等高频子命令,并结合仓库内对应的英文子命令页(pages/common/go-*.md)展开源码级扩充。读完本文,你将掌握 Go 工具链日常开发中最高频的构建、测试、依赖管理与模块初始化命令,以及 tldr 速查页的占位符与翻译规范,能够在任何环境下快速上手 Go 开发。
一、速查页定位:go 命令页在 tldr-pages 中的角色
tldr-pages 是一个社区维护的命令行工具帮助页集合,目标是比传统 man 手册更简洁、更贴近实战(见 README.md)。其中go命令页面向的是 Go 语言工具链的主命令,页首描述为「إدارة شيفرة Go」(管理 Go 源代码),并明确说明:部分子命令(如build)拥有独立的速查文档——这正是 tldr 项目「一命令一页、主命令页只收高频用法」的组织原则。
仓库中与该主命令页配套的子命令页包括:go get、go run、go build、go test、go install、go mod、go list、go vet、go fmt、go doc、go env、go clean、go fix、go generate、go tool、go version、go bug等(见 pages/common 目录),主命令页相当于这些子命令页的「高频索引」。
二、命令逐条解析:速查页七条核心用法
1.go get:下载并安装指定导入路径的包
go get {{package_path}}该命令用于按导入路径下载并安装依赖包。结合 go-get.md 可看到更完整的用法矩阵:
# 模块模式下把指定包写入 go.mod,或在 GOPATH 模式下安装该包 go get {{example.com/pkg}} # 以指定版本拉取依赖 go get {{example.com/pkg}}@{{v1.2.3}} # 从依赖中移除指定包 go get {{example.com/pkg}}@{{none}} # 将包更新到最新发布版本 go get -u {{example.com/pkg}} # 仅更新直接依赖 go get -u # 更新直接与间接依赖(./... 匹配当前包及其递归子包) go get -u ./... # 连同测试依赖一起更新 go get -u -t ./...{{package_path}}是 tldr 的占位符语法,替换为真实模块路径即可,如go get github.com/gin-gonic/gin。
2.go run:编译并直接运行源码文件
go run {{file}}.go该命令「编译并运行 Go 代码,但不落盘可执行文件」,适合开发期的快速验证。前置条件:源文件必须包含main包。扩展用法见 go-run.md:
# 运行单个 Go 文件 go run {{path/to/file.go}} # 运行一个 main 包(整个目录) go run {{path/to/package}}go run与go build的差异在于是否保存产物:前者编译后立即执行并清理临时二进制,后者产出可执行文件。
3.go build:编译源码与包
速查页给出两种形态:
# 编译指定源文件为指定名称的可执行文件 go build -o {{executable}} {{file}}.go # 编译当前目录下的包 go buildgo-build.md 进一步补充了细节:
# 编译 main 包文件,输出文件名默认与源文件名相同(无扩展名) go build {{path/to/main.go}} # 指定输出文件名 go build -o {{path/to/binary}} {{path/to/source.go}} # 编译一个包目录 go build -o {{path/to/binary}} {{path/to/package}} # 编译 main 包并开启数据竞争检测(-race) go build -race -o {{path/to/executable}} {{path/to/main_package}}要点:-o显式指定产物路径;-race用于并发程序的竞态检测,是排查数据竞争问题的常用调试开关。
4.go test:执行当前包的全部测试
go test速查页强调测试文件必须以_test.go结尾,这是 Go 测试框架的文件命名约定。仓库英文页 go-test.md 给出了从基础到进阶的测试命令组合:
# 测试当前目录包 go test # 详细输出每个用例的执行结果 go test -v # 递归测试当前目录及其所有子包 go test -v ./... # 运行全部基准测试 go test -v -bench . # 基准测试限时 50 秒 go test -v -bench . -benchtime 50s # 带覆盖率分析 go test -cover其中./...是 Go 工具链通配模式,匹配当前包及当前目录下递归的所有包;-bench与-benchtime面向性能基准测试,-cover用于统计测试覆盖率。
5.go install:编译并安装当前包
go install该命令编译当前包并将其安装到GOBIN(可执行程序)或GOPATH/pkg(库)目录。go-install.md 补充了现代模块模式下的用法:
# 编译并安装当前包 go install # 编译并安装指定本地包 go install {{path/to/package}} # 忽略当前目录 go.mod,直接安装某程序的最新版本(@latest 语法) go install {{golang.org/x/tools/gopls}}@{{latest}} # 安装 go.mod 中锁定的版本 go install {{golang.org/x/tools/gopls}}值得注意:go install pkg@version语法在 Go 1.16+ 模块模式下用于安装命令行工具(如 gopls、dlv),无需先 clone 项目。
6.go mod init:初始化新模块
go mod init {{module_name}}这是在当前目录创建新 Go 模块(生成go.mod文件)的入口命令,{{module_name}}通常填模块路径(如example.com/myapp)。模块机制是 Go 依赖管理的基石,go-mod.md 给出了模块维护的完整命令集:
# 初始化新模块 go mod init {{module_name}} # 下载模块到本地缓存 go mod download # 补齐缺失依赖、移除无用依赖 go mod tidy # 校验依赖内容与预期一致 go mod verify # 将全部依赖源码复制到 vendor 目录 go mod vendor其中go mod tidy是日常最常用的依赖整理命令,go mod vendor则用于需要离线/锁定依赖的场景。
三、占位符规范:为什么{{...}}保持英文
速查页中所有参数均使用{{...}}双花括号占位符,如{{package_path}}、{{file}}.go、{{executable}}、{{module_name}}。这是 tldr 页面的通用约定:读者替换占位符即得可用命令,客户端还可据此实现参数高亮与自动补全。
值得特别说明的是阿拉伯语(ar)与波斯语(fa)页面的翻译规则:见 contributing-guides/translation-templates/common-arguments.md 中的显式声明——阿拉伯语和波斯语页面的占位符不应被翻译,以免 RTL(从右到左)文本渲染时出现字符翻转错乱。因此本页的path/to/file、package、username等占位符在阿拉伯语版本中一律保留英文原样,这是 tldr 多语言维护中针对 RTL 语言的特例约定。
四、语言版本对照:阿拉伯语页与英文页的结构一致性
对比 pages/common/go.md(英文版)与 pages.ar/common/go.md(阿拉伯语版),两者保持严格的结构镜像:相同的描述行、相同顺序的七条命令、相同的占位符布局,仅描述与命令语义被翻译为阿拉伯语。这正是 tldr 多语言协作的核心工作流——翻译页以英文页为模板,通过 common-arguments.md 统一各语言常用占位符的翻译,从而保证所有语言版本的可维护性与一致性。
五、深入阅读:从速查页到完整子命令体系
主命令页仅收录七个最高频用法,若需深挖可继续查阅本仓库对应的子命令页,每一页都是一个独立的 tldr 速查文档:
- 依赖管理:go-get.md、go-mod.md
- 构建安装:go-build.md、go-install.md
- 运行测试:go-run.md、go-test.md
- 代码质量与工具:go-vet.md、go-fmt.md、go-doc.md、go-tool.md
- 环境与信息:go-env.md、go-list.md、go-version.md
- 维护类:go-clean.md、go-fix.md、go-generate.md、go-bug.md
结合本页开头「一些子命令如build有独立文档」的提示与速查页末尾的go mod init,可见 tldr 对 Go 工具链的覆盖采取「主命令页 + 子命令页」两级结构:主命令页解决「记不清最常用参数」的问题,子命令页解决「需要具体子命令完整用法」的问题。日常使用中,一条命令记不全时,直接查阅主命令页即可覆盖绝大多数场景;涉及模块管理、基准测试、竞态检测等进阶需求时,再深入对应子命令页,即可形成完整的 Go 命令行速查闭环。
- 文档
- 教程
- 知识库
【免费下载链接】tldr
Collaborative cheatsheets for console commands 📚.
相关推荐
tldr-pages子命令系统:git-commit深度解析
tldr pages子命令系统:git commit深度解析 你是否曾在提交代码时被冗长的Git命令选项搞得晕头转向?是否想知道如何编写规范的提交信息、修复错误
文档教程知识库Go-Questions编译命令:go build、go run等命令的深度解析
Go Questions编译命令:go build、go run等命令的深度解析 Go语言作为现代编程语言的代表,其编译系统设计精巧而高效。对于Go开发者来说,
文档教程Android Debug Bridge(adb)命令行速查:tldr 手册中 adb 核心命令与子命令全解
Android Debug Bridge(adb)命令行速查:tldr 手册中 adb 核心命令与子命令全解 本篇技术指南围绕 tldr 开源仓库中的 adb
文档教程知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考