centos7.4 记一次 go安装的问题,及目录命令熟悉

学go 安装第一步,go不需要安装Nginx,也可以跑服务,虽然现在php也可以,但PHP环境一般默认了wamp lamp lnmp

centos7.4 安装步骤简述

  wget https://dl.google.com/go/go1.15.10.linux-amd64.tar.gz  #拉取安装包
  tar -C /usr/local -zxvf  go1.15.10.linux-amd64.tar.gz  #解压文件
  mv go/  /usr/local/  #文件移动
  vim /etc/profile  #环境变量配置
  source /etc/profile #生效

  go env -w GO111MODULE=on  #打开 Go modules 开关 go1.13默认auto
  go env -w GOPROXY="https://goproxy.cn,direct"  #配置代理地址
  go version  #版本信息 正常显示 一般是安装成功

现在可以安装1.8了,BTA版也加入了泛型,我经历上述步骤后,go version命令也会正确显示我的版本号go1.15.10,表名我已经安装成功了

问题

我遇到的问题是,如上述安装成功后,每当我下次重新登录服务器,我的go 命令就失效了?
查阅资料后 发现还需要编辑下,并且下次登录服务器也可以使用go 命令了

vi ~/.bashrc
alias go='/usr/local/go/bin/go' #添加这段代码 
source ~/.bashrc #生效(配置后每次登录服务器都会重新读取这个文件)

目录熟悉

$GOPATH 是go的工程目录
  • $GOPATH/bin go 命令目录文件
  • $GOPATH/pkg/mode 存放的是包文件,按远程地址区分(包文件并不像php 一样在项目里)
    如github.com 一个目录
  • $GOPATH/pkg/sum 文件校验和目录
$GOROOT 是go的安装目录
  • api:用于存放依照 Go 版本顺序的 API 增量列表文件。这里所说的 API 包含公开的变量、常量、函数等。这些 API 增量列表文件用于 Go 语言 API 检查
  • bin:用于存放主要的标准命令文件(可执行文件),包含gogodocgofmt
  • blog:用于存放官方博客中的所有文章
  • doc:用于存放标准库的 HTML 格式的程序文档。我们可以通过godoc命令启动一个 Web 程序展示这些文档
  • lib:用于存放一些特殊的库文件
  • misc:用于存放一些辅助类的说明和工具
  • pkg:用于存放安装Go标准库后的所有归档文件(以.a结尾的文件)。注意,你会发现其中有名称为linux_amd64的文件夹,我们称为平台相关目录。这类文件夹的名称由对应的操作系统和计算架构的名称组合而成。通过go install命令,Go程序会被编译成平台相关的归档文件存放到其中
  • src:用于存放 Go自身、Go 标准工具以及标准库的所有源码文件
  • test:存放用来测试和验证Go本身的所有相关文件

常用命令

go help <command> //显示指定命令信息
go version  //版本信息
go ev      //go安装配置信息
go run     //运行代码
go build   //编译代码
go install //安装项目
go get -u  包名  //获取安装 go 包
go mod download  //下载 go.mod 文件中指明的所有依赖
go mod tidy   //整理现有的依赖
go mod graph  //查看现有的依赖结构
go mod init   //生成 go.mod 文件
go mod edit   //编辑 go.mod 文件
go mod verify //校验一个模块是否被篡改过

感慨:

go 是一门较简单的语言,但要熟悉真要花些心思呀!前段时间一直在焦虑,急躁,内耗,一直看文档,基础、并发协程,微服务,晕头转向,看了也不会! 还是要多实践多总结呀!不要害怕自己写的博客差,写起来,一点点积累,总能水滴石穿的!

本作品采用《CC 协议》,转载必须注明作者和本文链接
滴水穿石,石破天惊----晓疯子
zhaocrazy
讨论数量: 4
playmaker

这就是环境变量 跟 windows 一样

2年前 评论
zhaocrazy (楼主) 2年前

厉害,很详细。过几天我写一个一键安装的sh脚本,就不用做这么多的配置了。配置环境一直都很浪费时间。

2年前 评论
zhaocrazy (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!