golang语言之go常用命令

简介: 这篇文章列出了常用的Go语言命令,如`go run`、`go install`、`go build`、`go help`、`go get`、`go mod`、`go test`、`go tool`、`go vet`、`go fmt`、`go doc`、`go version`和`go env`,以及它们的基本用法和功能。

                                              作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.go run

go run xxx.go
    也可以执行程序,该命令本质上也是先编译再执行。

二.go install

go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。

因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。

三.go build

对源代码和依赖的文件进行打包,生成可执行文件。我们可以基于go build实现跨平台编译哟~


默认我们go build的可执行文件都是当前操作系统可执行的文件,Go语言支持跨平台编译——在当前平台(例如Windows)下编译其他平台(例如Linux)的可执行文件。

Windows编译Linux可执行文件
    如果我想在Windows下编译一个Linux下可执行文件,那需要怎么做呢?只需要在编译时指定目标操作系统的平台和处理器架构即可。

    注意:无论你在Windows电脑上使用VsCode编辑器还是Goland编辑器,都要注意你使用的终端类型,因为不同的终端下命令不一样!!!目前的Windows通常默认使用的是PowerShell终端。

    如果你的Windows使用的是cmd,那么按如下方式指定环境变量。
        SET CGO_ENABLED=0  // 禁用CGO
        SET GOOS=linux  // 目标平台是linux
        SET GOARCH=amd64  // 目标处理器架构是amd64

    如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为
        $ENV:CGO_ENABLED=0
        $ENV:GOOS="linux"
        $ENV:GOARCH="amd64"

    在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。
        go build


Windows编译Mac可执行文件
    Windows下编译Mac平台64位可执行程序:
        cmd终端下执行:
            SET CGO_ENABLED=0
            SET GOOS=darwin
            SET GOARCH=amd64
            go build

        PowerShell终端下执行:
            $ENV:CGO_ENABLED=0
            $ENV:GOOS="darwin"
            $ENV:GOARCH="amd64"
            go build


Mac编译Linux可执行文件
    Mac电脑编译得到Linux平台64位可执行程序:
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build


Mac编译Windows可执行文件
    Mac电脑编译得到Windows平台64位可执行程序:
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build


Linux编译Mac可执行文件
    Linux平台下编译Mac平台64位可执行程序:
        CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build


Linux编译Windows可执行文件
    Linux平台下编译Windows平台64位可执行程序:
        CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build


现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.

四.go help

查看帮助文档,比如:"go help build"

五.go get

把依赖库添加到当前module中,如果本机之前从未下载过则先下载。

- go get github.com/tinylib/msgp
    会在$GOPATH/pkg/mod目录下生成"github.com/tinylib/msgp"目录。

- go install github.com/tinylib/msgp@latest
    会在$GOPATH/bin下生成msgp可执行文件。

六.go mod

模块相关的命令。

- go mod init module_name
    初始化模块。

- go mod tidy
    通过扫描当前项目中所有代码来添加未被记录的依赖至go.mod文件或从go.mod文件中删除不再被使用的依赖。

七.go test

执行测试代码。

八.go tool

执行go自带的工具。

- go tool pprof:
    对CPU,内存和携程进行监控。

- go tool trace:
    跟踪协程执行过程。

九.go vet

检查代码中的静态错误。

十.go fmt

对代码文件进行格式化,如果用了IDE这个命令就不需要了。

- go fmt -w xxx.go

十一.go doc

查看go标准库或第三方库的帮助文档。

- go doc fmt
    查看fmt标准库的官方文档。

- go doc builtin.delete
    查看内建函数delete的官方文档。

- go doc gonum.org/v1/gonum/stat
    查看第三方的软件包"gonum.org/v1/gonum/stat"的文档。

十二.go version

查看go版本号。

十三.go env

查看go环境信息。
目录
相关文章
|
5月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
5月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
1月前
|
测试技术 程序员 Go
Go语言测试简明指南:深度解读go test命令
总的来说,go test是 Go 语言中一个强而有力的工具,每个 Go 程序员都应该掌握并把它融入到日常的开发和调试过程中。就像是一个眼镜过滤出的太阳,让我们在宽阔的代码海洋中游泳,而不是淹没。用好它,让我们的代码更健壮,让我们的生产力更强效。
141 23
|
29天前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
2月前
|
分布式计算 Go C++
初探Go语言RPC编程手法
总的来说,Go语言的RPC编程是一种强大的工具,让分布式计算变得简单如同本地计算。如果你还没有试过,不妨挑战一下这个新的编程领域,你可能会发现新的世界。
66 10
|
4月前
|
Go 开发者
go-carbon v2.6.0 重大版本更新,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持
93 3
|
5月前
|
开发框架 前端开发 Go
eino — 基于go语言的大模型应用开发框架(二)
本文介绍了如何使用Eino框架实现一个基本的LLM(大语言模型)应用。Eino中的`ChatModel`接口提供了与不同大模型服务(如OpenAI、Ollama等)交互的统一方式,支持生成完整响应、流式响应和绑定工具等功能。`Generate`方法用于生成完整的模型响应,`Stream`方法以流式方式返回结果,`BindTools`方法为模型绑定工具。此外,还介绍了通过`Option`模式配置模型参数及模板功能,支持基于前端和用户自定义的角色及Prompt。目前主要聚焦于`ChatModel`的`Generate`方法,后续将继续深入学习。
750 7
|
5月前
|
存储 缓存 监控
企业监控软件中 Go 语言哈希表算法的应用研究与分析
在数字化时代,企业监控软件对企业的稳定运营至关重要。哈希表(散列表)作为高效的数据结构,广泛应用于企业监控中,如设备状态管理、数据分类和缓存机制。Go 语言中的 map 实现了哈希表,能快速处理海量监控数据,确保实时准确反映设备状态,提升系统性能,助力企业实现智能化管理。
84 3
|
4月前
|
监控 前端开发 编译器
1 行命令引发的 Go 应用崩溃
1 行命令引发的 Go 应用崩溃
1 行命令引发的 Go 应用崩溃
|
5月前
|
存储 缓存 安全
Go 语言中的 Sync.Map 详解:并发安全的 Map 实现
`sync.Map` 是 Go 语言中用于并发安全操作的 Map 实现,适用于读多写少的场景。它通过两个底层 Map(`read` 和 `dirty`)实现读写分离,提供高效的读性能。主要方法包括 `Store`、`Load`、`Delete` 等。在大量写入时性能可能下降,需谨慎选择使用场景。