golang常用操作与命令

1.执行golang文件

go run hello_world.go

2.编译成可执行文件(交叉编译)

go build hello_world

则会生成hello_world可执行文件,即可直接运行
./hello_world

不同环境下的编译需要修改对应参数:
GOOS=linux
GOARCH=amd64

指定文件名称
go build -o hello.exe # 如果是window下的话 需要加上后面的后缀名

windows下设置方式:
set GOOS=windows; set GOARCH=amd64; go build  -v -ldflags "-w -s" -o golang-demo_windows.exe ./cmd/app/main.go

可能这种方式还是会有问题, 导致打包完成的二进制文件, 无法再Linux下正常执行
需要使用: go env -w GOOS=linux 进行设置相关参数即可, 打包完成之后, 记得改回来就行

-v: 打印编译过程
-ldflags: 链接选项,编译时候可以传入一些值作为配置golang应用
  -w: 去除调试信息
-s: 去除符号表
-X: 注入变量,编译时赋值
-w -s 一般同时使用,用来减少可执行文件袋额体检, 但删除了调试信息,可执行文件无法使用gdb/dlv调试

3.

go  test  ./...
go list ./... 这里的三个点作为通配符,标识当前目录及其子目录中的所有软件包

4.设置环境变量

// 设置代理
$env:GOPROXY = "https://goproxy.io,direct" // 或者使用 env -w
go env -w GOPROXY="https://goproxy.io,direct"

常用环境变量:

GOROOT
GOROOT 表示 Go 语言的安装目录。
GOROOT 的作用是用来索引 Go 语言的安装目录下的相关资源,比如 bin 目录的工具(如 go 命令),src 目录下的源码等。 GOPATH
GOPATH 用于指定我们的开发工作区,可以有多个。
按照 Go 开发规范,GOPATH 目录下一般分为三个子目录 src,pkg,bin。
src 目录存放我们需要开发的项目源码,
pkg 存放依赖的包和编译后的静态库文件,
bin 放源代码编译后台的可执行文件。 GO111MODULE
在 go1.11 的时候推出了这个 go modules 来解决依赖管理的问题。
通过变量 GO111MODULE 来控制 Go Module 的开启和关闭,取值 off、on 或 auto。
从 Go 1.13 开始,Go Module 作为 Golang 中的标准包管理器。 GOPROXY
go get 下载依赖时使用的代理地址列表,使用逗号 (,) 或竖杠 (|) 分隔。
当用 go 命令查找依赖模块时,它会按顺序访问 GOPROXY 列表中的每个代理,直到收到成功的响应或出现终端错误。
GOPROXY 中可能会存在两个关键字来代替代理URL:
off:不允许从任何源下载依赖的模块
direct: 直接从版本控制存储库下载,而不是使用模块代理
GOPROXY 缺省值为https://proxy.golang.org,direct。 GOPRIVATE
go get 通过代理服务拉取仓库时,因为代理服务不可能访问到私有仓库(一般为企业内部代码管理平台),会出现 404 错误。
go1.13 版本提供了一个方便的解决方案:GOPRIVATE 环境变量。 GOBIN
用于存储我们使用go install命令安装的程序。
如果没有设置 GOBIN,程序一般会安装到为GOPATH/bin目录。 GOOS
当前的操作系统。例如 linux、darwin、windows、netbsd、freebsd、openbsd、solaris、plan9 等。
注意 mac os对应的值是 darwin。 GOARCH
表示 CPU 架构。如 amd64、386、arm、ppc64 等。

  

golang之常用命令的更多相关文章

  1. GOLANG 常用命令

    golang常用命令: 命令 功能 build      编译包和依赖 run 编译并且直接运行 install 编译安装包和依赖 get 下载并安装包和依赖 fmt 调用gofmt格式化源码文件 d ...

  2. Hyperledger Fabric 常用命令

    Peer常用命令: #peer chaincode --help #peer channel list --help --logging-level <string> #<strin ...

  3. Linux命令整理,用户管理,用户组管理,系统管理,目录管理常用命令

    知识点梳理 Linux课堂笔记 学习目标 能够知道什么是Linux系统以及它的应用场景 能够独立完成安装VMware虚拟机和网络配置 能够独立完成安装CentOS以及远程终端SecureCRT 能够熟 ...

  4. Golang中常用的代码优化点

    Golang中常用的代码优化点 大家好,我是轩脉刃. 这篇想和大家聊一聊golang的常用代码写法.在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验.这些经验是代表你 ...

  5. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  6. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  7. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  8. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  9. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  10. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

随机推荐

  1. 总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景

    总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景 redis 和memcached 有什么区别?为什么在高并发下,单线程的redis 比多线程的效率高? mc 可以缓存图片和视频,re ...

  2. Facebook – Pixel

    介绍 Facebook 的 Pixel 类似于 Google 的 Analytics. 作用是 tracking 流量进入网站后是否转化. 这样就可以持续优化广告效果. 参考 Facebook Doc ...

  3. acme+cloudflare生成免费证书(自动续期)

    acme DNSapi acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录.玩过证书的朋友都知道,证书申请时有三种验证方式 ...

  4. MSF使用方法

    https://blog.csdn.net/weixin_45588247/article/details/119614618https://github.com/ttonys/Scrapy-CVE- ...

  5. scala安装及配置

    window 上安装 Scala 1.Scala下载网址:https://www.scala-lang.org/download/ 2.下载后,双击 msi 文件,一步步安装即可,安装过程你可以使用默 ...

  6. thinkphp在原字段上面进行加减操作

    经常有需要对某个数据表的计数字段进行加减操作,我们来看下在ThinkPHP中的具体使用办法. 最简单的,使用下面方法对score自加,第二个参数也可以不要,默认加1:   M('User')-> ...

  7. 3个步骤轻松集成Push Kit,实现App消息推送

    推送通知作为App重要的消息传递工具,广泛应用于电子商务.社交媒体.旅游交通等领域的通知场景.比如当应用有新功能或安全补丁时,系统将推送消息提醒用户及时更新:如果是航班出行类的应用,会发送最新的班次时 ...

  8. CE-植物大战僵尸杂交版

    植物大战僵尸杂交版 偏移:208+82c

  9. 全局和局部混入 mixins

    使用 mixins 混入 的目的 :复用代码,维护代码 : 局部混入: 全局混入 + 按钮权限控制 : ps:定义一个方法 ,checkPermission (str) str 是按钮的权限标识 , ...

  10. 云原生周刊:在 Kubernetes 集群中使用通配符证书 | 2024.2.19

    开源项目推荐 kube-fledged kube-fledged 是一个 Kubernetes Operator,用于直接在 Kubernetes 集群的工作节点上创建和管理容器映像的缓存.它允许用户 ...