goland 第一篇

go官网

https://golang.google.cn/dl/

go中文社区

https://studygolang.com/dl

IDE

https://jetbrains.com/go/

一、安装go

安装文档 https://golang.google.cn/doc/install https://go.dev/doc/install
从 https://go.dev/dl/ 或 https://golang.google.cn/dl/ 下载对应操作系统平台指定的版本即可。

Windows安装

官网下载 go1.x.y.windows-amd64.msi ,按照安装向导安装。
然后添加goproxy环境变量 GOPROXY=https://mirrors.aliyun.com/golang/,direct

linux 安装

wget -c https://go.dev/dl/go1.20.3.linux-amd64.tar.gz
tar xf go1.20.3.linux-amd64.tar.gz -C /usr/local
添加到环境变量PATH,修改$HOME/.profile或/etc/profile
export GOROOT=/usr/local/go
export GOPATH=~/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

也可以
go env -w GO111MODULE=on
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
go env -w GOPATH=/root/go


go env -w GOPROXY=https://goproxy.cn
...

二、环境变量说明

GOROOT:go安装目录
PATH:环境变量PATH添加GOROOT下的bin目录,go可执行文件所在目录
GOPATH 第三方依赖包安装路径
	例如我本机默认GOPATH=~/go
	GOMODCACHE存储第三方依赖包
GO111MODULE=on
	go早期版本管理依赖包方式使用GOPATH和vendor文件夹
	从1.11引入Go Module,1.16版本开始GO111MODULE默认为on,会根据go.mod管理和下载依赖
GOPROXY 缺省是 https://proxy.golang.org,direct
	direct 表示从镜像下载失败后,直接从原版本库地址下载,	off 表示不允许从任何源下载
	GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
	GOPROXY=https://repo.huaweicloud.com/repository/goproxy/
	一定要配置,不然后面安装包经常下载包很困难

Windows主要环境变量,如下

>go env
set GO111MODULE=
set GOARCH=amd64
set GOENV=C:\Users\otoyix\AppData\Roaming\go\env
set GOMODCACHE=C:\Users\otoyix\go\pkg\mod
set GOOS=windows
set GOPATH=C:\Users\otoyix\go
set GOPROXY=https://mirrors.aliyun.com/golang/,direct
set GOROOT=C:\Program Files\Go
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVERSION=go1.18.7

Linux主要环境变量,如下

#go env
GO111MODULE=""
GOARCH="amd64"
GOENV="/root/.config/go/env"
GOMODCACHE="/root/go/pkg/mod"
GOOS="linux"
GOPATH="/root/go"
GOPROXY="https://mirrors.aliyun.com/golang/,direct"
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVERSION="go1.18.7"

三、Go命令

version
查看版本
env
查看环境变量

mod
Go Module工程化模块相关命令。模块化后就可以进行更好的工程管理、依赖管理。
	go mod init otoyix.com/test 初始化模块目录,产生go.mod文件,和git init等很类似
	go mod tidy 扫描当前模块,从go.mod中移除未使用依赖,添加新的依赖
	
get
查找依赖包,如果未下载,则下载项目依赖包,添加相关信息到go.mod中,文件存储到环境变量
GOMODCACHE 指定的目录中(默认GOPATH/pkg/mod)。
	-u 下载最新包或有效更新包。默认情况下,本地有包就不下载了。如果网上有最新版,-u选项会更新本地包。
	
install
除了具备get的功能外,如果需要编译包,就执行go install,并把编译好的可执行文件放到GOPATH/bin下。例如
	go install golang.org/x/tools/gopls@latest
	
build
编译Go代码,生成可执行文件。
	-o 指定生成的可执行文件 go build [-o output] [build flags] [packages]
	go build -o hello.exe main.go
	
run
编译生成可执行文件并执行。
 go run main.go 指定main函数所在文件
 go run otoyix.com/test 去该模块找main函数
 
fmt
	对代码格式化。使得代码符合Go语言代码风格。

四、GO执行bash shell命令

package main

import (
  "bytes"
  "fmt"
  "log"
  "os/exec"
)


func exec_shell(s string) {
    cmd := exec.Command("/bin/bash", "-c", s)
    var out bytes.Buffer

    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(s)
    fmt.Printf("%s", out.String())
}

func main() {
    exec_shell("pwd")
    exec_shell("ls -l")
}

执行结果

[root@localhost go]# go run shell.go 
/data/go
total 4756
...... ......
...... ......

国内源加速

[root@test src]# go env -w GOPROXY=https://goproxy.io

国内加速源
	https://goproxy.io
	https://goproxy.cn
	https://mirrors.aliyun.com/goproxy/
	https://repo.huaweicloud.com/repository/goproxy/

-------------------end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值