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时,该该文件被读取。 ------------------------------------------------------------------------------------------------------------------