本文介绍: 接着上一篇继续介绍Go语言常用命令😊🙏如果大家相关文章感兴趣可以关注公众号”架构殿堂”,会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud系列文章,一系列干货随时送达!

579a429daf314744b995f37351b46548

前言

接着上一篇继续介绍Go语言常用命令

常用命令

以下是一些常用的Go命令,这些命令可以助您在Go开发进行编译测试运行管理依赖项等任务

命令 描述
go build 编译Go程序包及其依赖项。
go test 运行包的测试
go run 编译并运行Go程序
go clean 删除编译生成对象文件缓存文件
go bug 启动一个用于报告bug工具
go doc 显示有关包或符号文档
go env 打印有关Go环境信息
go fix 更新包以使用新的API。
go fmt 使用gofmt重新格式化Go包的源代码
go generate 通过处理源代码来生成Go文件
go get 依赖添加当前模块安装它们。
go install 编译并安装包及其依赖项。
go list 列出包或模块信息
go mod 用于模块维护,包括初始化模块添加更新依赖项等。
go work 用于工作区维护,例如查看清理打印工作信息
go tool 运行指定的Go工具。
go version 打印Go的版本信息
go vet 检查 Go 源码报告可疑的错误

go get

go get命令用于获取安装或更新远程代码包。它可以远程代码仓库下载代码,并将其安装本地的GOPATH目录中。

使用go get命令的一般格式如下

go get [package]

其中,[package]是要获取安装或更新的远程代码包的导入路径

示例

1.获取远程代码包:

go get github.com/example/package

这个命令会从GitHub获取名为package“的代码包,并将其安装本地的GOPATH目录中。

2.更新已安装代码包:

go get -u github.com/example/package

这个命令会更新已安装名为package“的代码包,将其更新到最新版本。

需要注意的是,go get命令会自动解析代码包的依赖关系,并下载安装所有相关的代码包。它还会将代码包安装到GOPATH目录中的srcbin目录中,以便后续的编译和执行

参数说明
参数 说明
u 更新已安装的代码包到最新版本。
-t 同时下载并安装测试所需的代码包。
d 下载代码包,不安装。
insecure 允许下载和安装不受信任的HTTPS代码包。
v 显示详细日志信息,包括下载和安装过程中的详细输出
fix 下载代码包之前,自动修复代码包中错误
tagnames 显示可用版本标签
tags 指定要使用的构建标签用于选择性地编译代码包。
buildmode 指定构建模式例如-buildmode=shared用于构建共享库。

这些参数可以根据需要进行组合使用,以满足具体的需求

例如,使用go get -u -t github.com/example/package命令可以更新已安装的代码包,并同时下载并安装测试所需的代码包。

需要注意的是,go get命令的参数可以根据不同的情况进行调整和使用,具体的使用方式可以参考官方文档或使用go help get命令查看帮助信息

go install

go install命令是Go语言中的一个工具命令,用于编译并安装指定的代码包或可执行文件。它会将编译后的结果安装到GOPATH目录中的bin子目录中,以便后续的执行

使用go install命令的一般格式如下:

go install [package]

其中,[package]是要编译并安装的代码包的导入路径

示例

1.安装代码包:

go install github.com/example/package

这个命令会编译名为package“的代码包,并将其安装到本地的GOPATH目录中的bin子目录中。

2.安装可执行文件:

go install github.com/example/package/cmd/myapp

这个命令会编译名为myapp“的可执行文件,并将其安装到本地的GOPATH目录中的bin子目录中。

需要注意的是,go install命令会自动解析代码包的依赖关系,并编译和安装所有相关的代码包。它还会将可执行文件安装到GOPATH目录中的bin子目录中,以便后续的执行。

参数说明
参数 说明
v 显示详细日志信息,包括编译和安装过程中的详细输出。
x 显示执行的命令,包括编译和安装过程中执行的命令。
race 启用数据竞争检测,用于检测并发程序中的数据竞争问题
ldflags 指定链接时的标志,用于传递额外参数链接器。
tags 指定要使用的构建标签,用于选择性地编译代码包。
buildmode 指定构建模式例如-buildmode=shared用于构建共享库。
trimpath 在编译时移除构建路径信息,以减小编译结果大小
mod 指定使用的模块支持方式,例如-mod=vendor用于使用vendor目录中的依赖。

这些参数可以根据需要进行组合使用,以满足具体的需求

例如,使用go install -v -race github.com/example/package命令可以启用详细日志信息,并启用数据竞争检测,编译并安装名为package”的代码包。

需要注意的是,go install命令的参数可以根据不同的情况进行调整和使用,具体的使用方式可以参考官方文档或使用go help install命令查看帮助信息

go list

go list命令是Go语言中的一个工具命令,用于列出指定代码包的信息。它可以用于查看代码包的导入路径、依赖关系、编译状态等信息。

使用go list命令的一般格式如下:

go list [flags] [package]

其中,[flags]是可选的标志参数,[package]是要列出信息的代码包的导入路径

示例

1.列出代码包的导入路径

go list github.com/example/package

这个命令会列出名为package”的代码包的导入路径

2.列出代码包的依赖关系

go list -f '{{.Deps}}' github.com/example/package

这个命令会列出名为package”的代码包的依赖关系

3.列出代码包的编译状态

go list -f '{{.Name}}: {{.Stale}}' github.com/example/package

这个命令会列出名为“package”的代码包的名称和编译状态

需要注意的是,go list命令支持一些标志参数,用于指定输出格式过滤条件等。你可以根据具体的需求使用不同的标志参数来获取所需的信息。

go mod

go mod命令是Go语言中用于管理模块(module)的命令。模块是Go语言引入的一种新的代码组织方式,用于替代原先的GOPATH方式。

使用go mod命令可以初始化编辑管理模块,以及处理模块的依赖关系

示例

1.初始化模块:

go mod init [module]

这个命令用于初始化一个新的模块,并指定模块的名称例如

go mod init github.com/example/module

2.添加依赖:

go mod tidy

这个命令会根据代码中的import语句自动添加删除模块的依赖关系,并更新go.mod文件。

3.下载依赖:

go mod download

这个命令会下载模块的依赖关系到本地缓存中。

4.更新依赖:

go get -u [module]

这个命令会更新指定模块的依赖关系,并将更新后的依赖关系写入go.mod文件。

5.查看依赖:

go list -m all

这个命令会列出当前模块的所有依赖关系。

6.清理依赖:

go mod tidy

这个命令会清理模块的依赖关系,删除不再使用的依赖项。

需要注意的是,go mod命令还支持其他一些参数和子命令,用于处理复杂的模块管理任务。你可以使用go help mod命令查看更详细的帮助信息。

参数说明
参数 说明
init 初始化模块。使用该参数可以在当前目录初始化一个新的模块。
require [module@version] 添加依赖关系。使用该参数可以手动加一个依赖关系到当前模块。
exclude [module] 排除依赖关系。使用该参数可以排除指定的依赖关系,不会被下载和使用。
replace [old@v=new] 替换依赖关系。使用该参数可以将指定的依赖关系替换为其他版本或其他模块。
dropreplace [module] 移除替换关系。使用该参数可以移除指定的替换关系。
require [module@none] 移除依赖关系。使用该参数可以移除指定的依赖关系。
exclude [module@none] 移除排除关系。使用该参数可以移除指定的排除关系。
json 以JSON格式输出结果。使用该参数可以以JSON格式输出go mod命令的结果
v 显示详细信息。使用该参数可以显示详细的信息,例如下载的依赖关系的版本号
-mod [value] 设置模块的下载模式。使用该参数可以设置模块的下载模式可选值为”readonly“、“vendor”和”mod”。
-verify 验证模块的依赖关系。使用该参数可以验证模块的依赖关系是否完整正确

需要注意的是,go mod命令还支持其他一些参数和子命令,用于处理复杂的模块管理任务。可以使用go help mod命令查看更详细的帮助信息。

go work

go work命令是Go语言的一个工具,用于管理Go工作区。它可以帮助开发者多个项目之间轻松切换,同时保持项目的依赖关系和构建配置一致性

基本用法
  1. 创建一个新的工作区:
go work init [path]

这将在指定的路径创建一个新的工作区,并初始化一个空的Go模块。

  1. 列出当前工作区的所有模块:
go work list
  1. 切换到另一个工作区:
go work use <module>

<module>替换为要切换到的工作区的模块名称

  1. 删除一个工作区:
go work delete <module>

<module>替换为要删除的工作区的模块名称

示例
  1. 创建一个名为myproject的新工作区:
go work init myproject
  1. 列出当前工作区的所有模块:
go work list  

输出:

myproject/... v0.0.0-20190723092333-d5e6001c442d
  1. 切换到myproject工作区:
go work use myproject
  1. 删除myproject工作区:
go work delete myproject
go tool

go tool是Go语言提供的一个命令,用于执行Go工具链中的特定工具。它可以用来执行各种与Go相关的工具,如编译器链接器、测试工具等。

示例

下面是一些常用go tool命令示例:

1.go tool compile:用于将Go源代码编译为机器代码。

示例:go tool compile main.go

2.go tool link:用于将编译后的目标文件链接为可执行文件。

示例:go tool link -o main main.o

3.go tool test:用于运行Go测试。

示例:go tool test -run TestFunction

4.go tool pprof:用于分析Go程序的性能

示例:go tool pprof http://localhost:8080/debug/pprof/profile

5.go tool vet:用于静态分析Go代码,查找潜在的错误和问题

示例:go tool vet main.go

6.go tool cover:用于生成代码覆盖报告

示例:go tool cover -html=coverage.out

需要注意的是,go tool命令还支持其他一些工具,如asmcgofix等。你可以使用go tool命令加上相应的子命令来执行这些工具。例如:go tool asmgo tool cgogo tool fix等。


go version

go version命令用于显示当前安装的Go语言版本。它可以帮助你确定你正在使用的Go语言版本,以及验证你的Go语言环境是否正确安装和配置

示例

下面是go version命令的示例:

1:显示当前安装的Go语言版本

go version

示例输出:

go version go1.17.2 darwin/amd64

2:显示当前安装的Go语言版本,并将结果保存到文件中

go version > version.txt

执行上述命令后,会在当前目录下生成一个名为version.txt的文件,其中包含了当前安装的Go语言版本信息

go vet

go vet命令是Go语言提供的一个静态分析工具,用于检查Go代码中的常见错误和潜在问题。它可以帮助开发者发现一些在编译时无法捕获的错误,提高代码的质量可靠性

示例

下面是go vet命令的示例:

1:检查当前目录下的所有Go源文件

go vet

2:检查指定的Go源文件

go vet main.go

3:检查指定的包

go vet github.com/example/package

4:检查指定的包及其子包

go vet ./...

5:将检查结果输出到文件

go vet -vettool=vet.out

执行上述命令后,会在当前目录下生成一个名为vet.out的文件,其中包含go vet命令的检查结果


总结

至此,所有的常用命令已经介绍完毕,谢谢大家


写在最后

感谢您的支持和鼓励! 😊🙏

如果大家相关文章感兴趣,可以关注公众号”架构殿堂”,会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!

csdn-end

原文地址:https://blog.csdn.net/jinxinxin1314/article/details/134544263

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_50403.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注