go的安装

1.在window下和Linux下都可进行下载安装
2.开发包安装完成后,我们还需要配置一下GOPATH 环境变量,之后才可以使用Go语言进行开发。
GOPATH 是一个路径,用来存放开发中需要用到的代码包  D:\Code\Go

//-- C:\Program Files\Go\bin  放到了系统变量上面

//-- %USERPROFILE%\go\bin  放到了用户变量上
//-- 可以用CMD的SET命令来查看现有的系统变量   USERPROFILE=C:\Users\Lenovo

------------------------------------------------------------------------------------------------------------------
查看go的版本?
答:C:\Users\Lenovo>go version
go version go1.18.1 windows/amd64

window安装go。在本机上它的安装路径是:  C:\Program Files\Go

------------------------------------------------------------------------------------------------------------------
查看go的环境?
答:
C:\Users\Lenovo>go env
set GO111MODULE=auto
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Lenovo\AppData\Local\go-build
set GOENV=C:\Users\Lenovo\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\Code\Go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\Code\Go                                       ---????go命令依赖的一个重要环境变量:$GOPATH
                                                                                   ---              其实可以把这个目录理解为工作目录
                                                                                   ---
set GOPRIVATE=
set GOPROXY=https://goproxy.cn
set GOROOT=C:\Program Files\Go                        ---????  golang 的安装路径,安装好golang之后其实这个就已经有了
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.18.1
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set GOWORK=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\Lenovo\AppData\Local\Temp\go-build3478413471=/tmp/go-build -gno-record-gcc-switches

------------------------------------------------------------------------------------------------------------------

go 语言的编译?
答: 
PS D:\Code\Go\Hello> go build                     //-- 生成文件名.exe      
PS D:\Code\Go\Hello> go build -o a             //-- 生成a
PS D:\Code\Go\Hello> go build -o a.exe      //-- 生成a.exe

------------------------------------------------------------------------------------------------------------------
命令行运行go?
答:PS D:\Code\Go\src\Hello> go run '.\package main.go'


------------------------------------------------------------------------------------------------------------------

GOPATH之下主要包含三个目录: bin、pkg、src
bin目录主要存放可执行文件; pkg目录存放编译好的库文件, 主要是*.a文件; src目录下主要存放go的源文件
不要把GOPATH设置成go的安装路径,
可以自己在用户目录下面创建一个目录, 如gopath

------------------------------------------------------------------------------------------------------------------
d := 100
// := 是声明并赋值,并且系统自动推断类型,不需要var关键字

------------------------------------------------------------------------------------------------------------------
①
 在Linux下, 下载安装go 语言开发包
②
找到合适路径下载  (base) lxk@ubuntu://usr/local$ sudo wget https://golang.google.cn/dl/go1.18.2.linux-amd64.tar.gz
解压到合适路径     sudo tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz 
路径下出现go文件夹
③ 查看go的版本
(base) lxk@ubuntu://usr/local/go$ bin/go version
go version go1.18.2 linux/amd64
④ 配置环境变量
我们需要配置 2 个环境变量分别是 GOROOT 和 PATH。
GOROOT 的值应该为Go语言的当前安装目录:export GOROOT=/usr/local/go
PATH 为了方便使用Go语言命令和 Go 程序的可执行文件,需要追加其值:export PATH=$PATH:$GOROOT/bin:$GOBIN

为了方便以后的使用,需要把这几个环境变量添加 profile 文件中(~/.bash_profile 或 /etc/profile)。
如果是单用户使用,可以将环境变量添加在 home 目录下的 bash_profile 文件中,
如果是多用户使用,需要添加在 /etc/profile 文件。(推荐大家在 /etc/profile 文件中设置环境变量)
然后,使用 source /etc/profile 命令使配置文件生效,现在就可以在任意目录使用Go语言命令了。

⑤ 验证安装
在任意目录下使用终端执行 go env 命令
------------------------------------------------------------------------------------------------------------------
解压命令如何指定文件夹:

tar -zxvf test.tar.gz -C test
注释:上面的命令将 test.tar.gz 这个压缩包解压到当前目录下的 test 目录下。

 -C 选项的作用是:指定需要解压到的目录。
------------------------------------------------------------------------------------------------------------------
Linux创建自己的内建命令  
https://www.cnblogs.com/Survivalist/p/11297938.html

 1. 创建命令存储目录
script

 2. 在目录下创建 hello文件后编写命令
#!/bin/sh 
echo hello

 3. 授权命令 chmod +x
 4. 移入bin目录下    sudo cp hello /bin
可在任意地方 输入hello命令
------------------------------------------------------------------------------------------------------------------
Linux中如何使用alias命令
如何创建alias

例如,设置一个别名列出所有文件包括隐藏文件,别名为lx:
(base) lxk@ubuntu:~/Code/public$ alias lx='la -al'

执行刚才设置的lx
(base) lxk@ubuntu:~/Code/public$ lx
total 80
drwxrwxrwx 20 lxk lxk 4096 May 16 20:08 .
drwxrwxr-x 10 lxk lxk 4096 May 16 19:15 ..
drwxrwxrwx  5 lxk lxk 4096 May 16 18:26 BMP2FITS
drwxrwxrwx  3 lxk lxk 4096 May 16 18:26 DATASERVER-old
drwxrwxrwx  4 lxk lxk 4096 May 16 19:31 EPH2JSON


如果要永久使用,可以将该命令写入~/.bashrc文件里面。
[root@server1 ~]# echo "alias lx='ls -al'" >> ~/.bashrc
使用这个 source /etc/profile 命令使配置文件生效

----------------------------------------------------------------------
??????????????  有问题  还要探索××××××××
alias lx='ls -al'
也可以把上述放到全局变量里面==>
这个命令是打开bash   
sudo gedit /root/.bashrc
尾部写入  alias lx='ls -al'后保存退出

进入root
root@ubuntu:~# su root
使用这个 source /etc/profile 命令使配置文件生效


root@ubuntu:/home/lxk# vim ~/.bashrc  等效于  sudo gedit /root/.bashrc


------------------------------------------------------------------------------------------------------------------
import (
	"encoding/binary"
	"flag"
	"fmt"
	"io/ioutil"
	"log"
	"math"
	"os"
	 path "path/filepath"        

	"strings"
	"sync"

	"github.com/astrogo/fitsio"
)
------------------------------------------------------------------------------------------------------------------
一直报错为go: go.mod file not found in current directory or any parent directory; see 'go help modules'
命令行输入  go env -w GO111MODULE=auto

GO111MODULE
GO111MODULE是 go modules 功能的开关,关于go modules本文不详述,这个涉及到go的一种很重要的管理机制,
,我们可以简单的理解为,在没有go modules机制时,go工程中对于第三方功能包的管理非常复杂,也非常专业,
这就导致程序员在进行开发的时候,对于第三方功能包的管理很不方便,所以才有了go modules机制。
这个机制的开关是通过GO111MODULE环境变量来配置的。

GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
(1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
(2)当前文件在包含go.mod文件的目录下面。


在使用go modules时,GOPATH是无意义的,不过它还是会把下载的依赖存储在$GOPATH/pkg/mod 中,也会把go install 的结果放在 $GOPATH/bin 中。
当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的module------------------------------------------------------------------------------------------------------------------
GOPROXY
从字面意思就能看出,GOPROXY表示的是go的代理设置,之所以有这个环境变量,是因为go这种语言不像C语言,在C语言中,如果我们想要使用别人的第三方代码,一般有两种途径:
1、将第三方代码源码合并到自己的工程文件中,再合并编译。
2、将第三方代码编译生成的共享库***.so或*.dll** 文件放到工程目录下,然后通过条件编译来使用。
而在go语言中,类似于java,可以在编程时,引入第三方代码的库地址,比如git仓库,然后在编译的时候,IDE会自动的拉取第三方库文件到当前工程。
这样做虽然很方便,但是带来了一个问题:网速和限制,因为一些第三方代码库是在国外服务器上的,因为一些限制,我们不能很顺利的使用和下载这些仓库,这样就会导致下载缓慢或者失败,所以这个时候就需要一个 代理来实现下载,这个代理就是中间商,可以跨过限制来访问。
golang默认的GOPROXY是https://goproxy.io,这个是官方的设置,我们可以使用国内的代理,Windows下设置如下:
打开终端并执行

go env -w GOPROXY=https://goproxy.cn,direct
------------------------------------------------------------------------------------------------------------------
在windows下
C:\Users\Lenovo\AppData\Roaming\go  路径下

GO111MODULE=auto
GOPROXY=https://goproxy.cn
------------------------------------------------------------------------------------------------------------------
问题描述:
在/etc/profile中添加环境变量后,是使用source /etc/profile编译后只能在当前终端生效;
重新开启一个终端后,该环境变量失效。

解决方法:
重启系统:reboot,问题解决;
因为设置的环境变量,并没有真正生效,只是使用source 命令让临时运行而已。


1/etc/profile:是操作系统定制用户环境使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境的变量。
3~/.bash_profile:在登录时用到的第三个文件是.profile文 件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用 户登录时,该文件仅仅执行一次,默认情况下,设置一些环境变量,执 行用户的.bashrc文件。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
4~/.bashrc:该文件包含专用于你的bash shell的bash信 息,当登录时以及每次打开新的shell时,该该文件被读取。
------------------------------------------------------------------------------------------------------------------

这里可以看到env的环境
(base) lxk@ubuntu:~$ go env
GO111MODULE="auto"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/lxk/.cache/go-build"
GOENV="/home/lxk/.config/go/env"   
//-- 在这可以看到env的配置,windows下也可能通过go env找到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值