常见环境变量

go 版本 1.18

通过go命令行工具得到以下环境变量

set GO111MODULE=auto

开启或关门 go mod支持  有三个值 auto、on、off 默认是 auto,

  • auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持
  • off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包
  • on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖

set GOARCH=amd64

表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm

set GOBIN=

'go install'所在的目录将安装一个命令,用于存放编译好的可执行文件

set GOCACHE=C:\Users\Administrator\AppData\Local\go-build

这是go build产生的缓存,用于将来构建中重用的信息,这可以加快编译速度,可以使用"go clean -cache"命令清除编译缓存

set GOENV=C:\Users\Administrator\AppData\Roaming\go\env

Go环境配置文件的位置。不能使用'go env -w'来设置。在环境中设置GOENV=off将禁用默认的配置文件

set GOEXE=.exe

可执行文件名后缀(如Windows上为“.exe”)

set GOINSECURE=

逗号分隔的glob模式列表(在Go的path.Match语法中)的模块路径前缀,应该总是在一个不安全的的方式。仅适用于直接获取的依赖项。GOINSECURE不禁用校验和数据库验证。GOPRIVATE或GONOSUMDB可以用来实现这一点。美好的用来编译代码的操作系统。例如linux, darwin, windows, netbsd

set GOMODCACHE=D:\workspace\go\pkg\mod

go命令存放下载模块的目录

set GONOSUMDB=

这个环境变量来设置不做校验的代码仓库, 它可以设置多个匹配路径,用逗号相隔

举例:

​GONOSUMDB=*.corp.example.com,rsc.io/private

set GOOS=windows

表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows

set GOPATH=D:\workspace\go

工作目录,也就是项目存储的目录,一般目录下包含src 、 pkg 和 bin ,这三个目录分别用于存放源码文件、包文件和可执行文件,如果使用go mod 源码可以放到任意目录

set GOPRIVATE=

用来控制 go 命令把哪些仓库看做是私有的仓库,这样的话,就可以跳过 proxy server 和校验检查,这个变量的值支持用逗号分隔,可以填写多个值

举例

GOPRIVATE=*.corp.example.com,rsc.io/private

这样 go 命令会把所有包含这个后缀的软件包,包括 git.corp.example.com/xyzzy , rsc.io/private, 和 rsc.io/private/quux 都以私有仓库来对待

set GOPROXY=https://goproxy.io,direct

GOPROXY设置的是,go get 下载依赖时使用的代理地址列表。该环境变量也可以设置多个值,多个值之间使用逗号 或竖杠分隔。GOPROXY的默认值为:proxy.golang.org,direct

当用 go 命令查找依赖模块时,它会按顺序访问 GOPROXY 列表中的每个代理,直到收到成功的响应或出现终端错误

GOPROXY 中可能会存在两个关键字来代替代理URL

off:不允许从任何源下载依赖的模块
direct: 直接从版本控制存储库下载(如github),而不是使用模块代理

set GOROOT=C:\Program Files\Go

表示 Go 在你的电脑上的安装位置

set GOSUMDB=off

可以用来配置你使用哪个校验服务器和公钥来做依赖包的校验,默认值是sum.golang.org

举例

GOSUMDB="gosum.io+ce6e7565+AY5qEHUk/qmHc5btzW45JVoENfazw8LielDsaI+lEbq6"

GOSUMDB=off则不做校验

Go 常用命令

go version

PS D:\workspace\demo01> go version

查看Go的版本

go build  编译源码

go build [-o 输出名] [-i] [编译标记] [包名]

go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件

  • 无参数编译  就是在当前目录下运行go build,go build 在编译开始时,会搜索当前目录的 go 源码进行编译。
  • 文件列表编译  就是可以指定多个文件进行编译,如go build file1.go file2.go ...多个文件用空格分隔
  • 指定包编译  就是在go build 后面跟包的路径,例如我的项目目录为demo01 目录下有个main.go文件 可以直接运行go build demo01 进行编译

编译时可以使用 -o 指定输出文件的名字

go clean

go clean 命令可以移除当前源码包和关联源码包里面编译生成的文件,文件包括以下几种

  • 执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有“.exe”后缀的文件。
  • 执行go test命令并加入-c标记时在当前目录下生成的以包名加“.test”后缀为名的文件。在 Windows 下,则是以包名加“.test.exe”后缀的文件。
  • 执行go install命令安装当前代码包时产生的结果文件。如果当前代码包中只包含库源码文件,则结果文件指的就是在工作区 pkg 目录下相应的归档文件。如果当前代码包中只包含一个命令源码文件,则结果文件指的就是在工作区 bin 目录下的可执行文件。
  • 在编译 Go 或 C 源码文件时遗留在相应目录中的文件或目录 。包括:“_obj”和“_test”目录,名称为“_testmain.go”、“test.out”、“build.out”或“a.out”的文件,名称以“.5”、“.6”、“.8”、“.a”、“.o”或“.so”为后缀的文件。这些目录和文件是在执行go build命令时生成在临时目录中的。

相关参数

  • -i 清除关联的安装的包和可运行文件,也就是通过go install安装的文件;
  • -n 把需要执行的清除命令打印出来,但是不执行,这样就可以很容易的知道底层是如何运行的;
  • -r 循环的清除在 import 中引入的包;
  • -x 打印出来执行的详细命令,其实就是 -n 打印的执行版本;
  • -cache 删除所有go build命令的缓存
  • -testcache 删除当前包所有的测试结果

go run

此命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件

go fmt

gofmt 是一个 cli 程序,会优先读取标准输入,如果传入了文件路径的话,会格式化这个文件,如果传入一个目录,会格式化目录中所有 .go 文件,如果不传参数,会格式化当前目录下的所有 .go 文件

相关参数

-l 仅把那些不符合格式化规范的、需要被命令程序改写的源码文件的绝对路径打印到标准输出。而不是把改写后的全部内容都打印到标准输出。
-w 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出。
-r 添加形如“a[b:len(a)] -> a[b:]”的重写规则。如果我们需要自定义某些额外的格式化规则,就需要用到它。
-s 简化文件中的代码。
-d 只把改写前后内容的对比信息作为结果打印到标准输出。而不是把改写后的全部内容都打印到标准输出。
命令程序将使用 diff 命令对内容进行比对。在 Windows 操作系统下可能没有 diff 命令,需要另行安装。
-e 打印所有的语法错误到标准输出。如果不使用此标记,则只会打印每行的第 1 个错误且只打印前 10 个错误。
-comments 是否保留源码文件中的注释。在默认情况下,此标记会被隐式的使用,并且值为 true。
-tabwidth 此标记用于设置代码中缩进所使用的空格数量,默认值为 8。要使此标记生效,需要使用“-tabs”标记并把值设置为 false。
-tabs 是否使用 tab('\t')来代替空格表示缩进。在默认情况下,此标记会被隐式的使用,并且值为 true。
-cpuprofile

是否开启 CPU 使用情况记录,并将记录内容保存在此标记值所指的文件中。

go install

go install 会将编译的中间文件放在 $GOPATH 的 pkg 目录下,将编译结果放在 $GOPATH 的 bin 目录下,go install 命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者 .a 包),第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin

go get 

go get 命令可以动态获取远程代码包,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等,参数中需要提供一个包名。
go get 命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。下载源码包的 go 工具会自动根据不同的域名调用不同的源码工具

相关参数

-d 只下载不安装
-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用
-fix 在获取源码之后先运行 fix,然后再去做其他的事情
-t 同时也下载需要为运行测试所需要的包
-u 强制使用网络去更新包和它的依赖包
-v 显示执行的命令

go test

Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码

go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件,性能测试系统可以给出代码的性能数据,帮助测试者分析性能问题

要开始一个单元测试,需要准备一个 go 源码文件,在命名文件时需要让文件必须以_test结尾。默认的情况下,go test命令不需要任何的参数,它会自动把你源码包下面所有 test 文件测试完毕,当然你也可以带上参数。

这里介绍几个常用的参数:

  • -bench regexp 执行相应的 benchmarks,例如 -bench=.;
  • -cover 开启测试覆盖率;
  • -run regexp 只运行 regexp 匹配的函数,例如 -run=Array 那么就执行包含有 Array 开头的函数;
  • -v 显示测试的详细命令

单元测试源码文件可以由多个测试用例组成,每个测试用例函数需要以Test为前缀,例如:

func TestXXX( t *testing.T )

  • 测试用例文件不会参与正常源码编译,不会被包含到可执行文件中。
  • 测试用例文件使用go test指令来执行,没有也不需要 main() 作为函数入口。所有在以_test结尾的源码内以Test开头的函数会自动被执行。
  • 测试用例可以不传入 *testing.T 参数。

GO 常见环境变量与常用命令相关推荐

  1. uboot环境变量及常用命令

    U-Boot环境变量的解释说明 环 境 变 量 解 释 说 明 bootdelay 定义执行自动启动的等候秒数 baudrate 定义串口控制台的波特率 netmask 定义以太网接口的掩码 etha ...

  2. Linux 配置Nginx环境变量Nginx常用命令

    1.打开配置文件 vi /etc/profile 2.在PATH后面追加sbin目录,以:隔开 /usr/local/nginx-1.20.2/sbin export JAVA_HOME=/usr/l ...

  3. Mac电脑环境变量设置方法及常见环境变量说明

    在深度学习Python后,很可能需要在同一台电脑上安装不同Python版本的的运行环境,或者设置默认的python和pip运行版本,或者在安装比如mysql.jupyter notebook的时候,一 ...

  4. shell脚本编程学习笔记4(xdl)——Bash常见环境变量

    shell脚本编程学习笔记4--Bash常见环境变量 非专业运维,例如开发人员,环境变量熟悉常见的,了解不常见的即可. 1,简介 环境变量配置文件中主要是定义对系统的 操作环境生效的系统默认环境变量, ...

  5. linux环境变量和linux命令export

    什么是环境变量,Linux环境变量及作用 变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值.在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如 ...

  6. linux查看当前环境信息,Linux查看环境变量当前信息命令

    Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境.通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义. 在Windows下,查看环境变量的命令是: ...

  7. gradle环境设置以及常用命令以及gradle配置文件

    Backgroud: Gradle | Releases 这里可以看到gradle设置的 一:下载gradle 1.首先官网下在gradle到本地,其次载环境变量path设置gradle地址 下载地址 ...

  8. Maven环境搭建及常用命令、生命周期

    一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试  mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...

  9. Linux下各种常见环境变量的配置

    Linux系统下各种环境变量都通过修改/etc/profile文件来实现.由于是系统文件,修改此文件需要root权限.因此实现以下功能都需要用户拥有root权限. 另:不要轻易修改profile文件中 ...

最新文章

  1. PyTorch 1.6、TensorFlow 2.3、Pandas 1.1同日发布!都有哪些新特性?
  2. springboot webjar使用
  3. UNIX网络编程——UDP缺乏流量控制(改进版)
  4. windows10 IOT +Azure会议概要总结
  5. 那些被大数据时代抛弃的人
  6. Vue —— vuex
  7. c语言操作目录,c语言中目录及文件操作.doc
  8. php 获取父类名称,[typecho]获取 父级分类 名称?
  9. python中io中的+模式_Python的高级特性,模块和IO操作
  10. 小甲鱼python电子版_零基础入门学习Python 小甲鱼出品 (全42集)
  11. Spring异步切面源码解析
  12. 通过FTP实现上传和下载
  13. Openpose的使用经历
  14. zf:tf7: RNN—古诗词
  15. oracle语句整理,Oracle 维护常用SQL语句整理
  16. ps 钢笔工具做部分透明图片
  17. php西游记源码,基于Python第三方插件实现西游记章节标注汉语拼音的方法
  18. SoX — 音频处理工具里的瑞士军刀
  19. php 半角 全角 转换,PHP半角/全角转换函数
  20. 雷神的微软平台安全宝典---第二章 简介

热门文章

  1. 优雅地寻找网站源码(一)
  2. 控制反转(IOC) 和依赖注入(DI) 的理解
  3. Quartz任务调度器详解
  4. wps 流程图 跨页_流程图跨页(wps流程图怎么制作)
  5. Dynagon代码阅读感想
  6. Shell脚本之H3C网络设备批量巡检
  7. 在云服务的助力下,卫星遥感技术可以怎样造福人类?
  8. html本地化软件,如何为本地化做准备 (HTML)
  9. Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(四)数据屏幕
  10. 手把手教你拿到小世界里妹子的 QQ 号 !