golang 安装,插件和内置命令

GO配置

安装

  • apt安装
    • apt update && apt install -y golang
    • 卸载使用apt remove命令,然后使用apt autoremove移除依赖包
    • 注意这种方式只能安装1.6版本,如需更高版本(比如需要context包)请按照第二种方式安装
  • 安装包安装
  • 如果下载的版本是1.13及以上可以更改默认代理
    • 后面的插件下载就不必手动安装了
    • GOPRIVATE可以设定组织内的私有库
# vim ~/.profile
export GOPROXY="https://goproxy.cn,direct"
export GOPRIVATE="*.xxx.org"
export GOSUMDB="golang.google.cn"

# source ~/.profile

多版本管理

  • 通过下面的脚本可以快速安装和管理多个golang版本
    • 需要在/usr/local目录下创建go-dirgo-tar两个目录
    • 如果在Linux系统下需要吧darwin改成linux
BigVersion=$1
SmallVersion=$2

RootPath=/usr/local
DirPath=/usr/local/go-dir/go-${BigVersion}-${SmallVersion}
TarFile=go1.${BigVersion}.${SmallVersion}.darwin-amd64.tar.gz

wget  https://golang.google.cn/dl/${TarFile}
mkdir -p ${DirPath}
tar -C ${DirPath} -xzf ${TarFile}
cd ${RootPath}; rm go
ln -s ${DirPath}/go/ ${RootPath}/go

配置环境变量

在这里插入图片描述

  • /etc/profile文件对整个计算机生效
  • ~/.profile 或者 ~./bash_profile文件对该用户生效
  • 如果使用了zsh的话得加载在/etc/zsh/zshrc文件中
# apt安装的不用配置该项
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

# 这个是你自己的开发目录
# 可以同时存在多个开发目录,用:连接
export GOPATH=$HOME/vscode/go-config
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

# 如果原先有老得go环境变量,还要删除
export PATH=${PATH#/*/tiger/go/go/bin}
  • 生效配置
    • source /etc/profile 或者source ~/.profile

安装插件(vscode)

GO 内置命令

命令列表

	build       compile packages and dependencies
	clean       remove object files
	doc         show documentation for package or symbol
	env         print Go environment information
	bug         start a bug report
	fix         run go tool fix on packages
	fmt         run gofmt on package sources
	generate    generate Go files by processing source
	get         download and install packages and dependencies
	install     compile and install packages and dependencies
	list        list packages
	run         compile and run Go program
	test        test packages
	tool        run specified go tool
	version     print Go version
	vet         run go tool vet on packages

go build

  • 如果目标包里有 main 包,就会生成二进制文件
    • 如果没有 main 包,build 指令仅仅用来检查编译是否可以通过,编译完成后会丢弃编译时生成的所有临时包对象
  • 默认作用范围为当前文件夹,也可以指定目录编译
    • ...匹配所有
      • go build flysnow.org/tools/...编译tools目录下的所有包
  • 在当前目录下生成二进制文件
    • 使用 -o 参数显式指定路径和文件名
  • - race参数开启竞争检测
  • 跨平台编译
    • GOOS=linux GOARCH=amd64 go build packageName

go clean

  • 删除编译生成的文件

go install

  • 编译并安装文件,即比build多一个安装的步骤
  • 不指定包则默认为安装当前包
  • 安装到bin或pkg目录下
    • 含有main包文件(生成可执行文件)会被安装到$GOPATH/bin目录下
    • 普通包文件(生成.a文件)安装到$GOPATH/pkg/$GOOS/目录下
  • 当存在多个GOPATH目录时,只有第一个目录有效

go run

  • 编译和执行程序,不生成文件
  • 必须要包含main函数的文件作为参数

go get

  • 获取远程代码包并安装
    • 源代码会被下载到$GOPATH/src目录下
  • -v 显示过程
  • -u 强制用网络更新
  • -d 只下载,不安装
  • go get 会自动检测和安装所有依赖包
    • 为了获得一个项目的所有依赖,不要使用git clone,而使用go get
# 下载所有依赖
go get -v ./...

go help

  • 查看内置命令使用帮助
    • 例如go help build

go env

  • 不加参数即为查看环境参数
  • -w 设置全局环境变量
    • 例如 go env -w GOBIN=$HOME/bin

go vet

  • 静态代码检查

参考

极客学院-命令行工具集

知乎-命令行工具集

发布了161 篇原创文章 · 获赞 19 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/winter_wu_1998/article/details/101705042