`
gaojingsong
  • 浏览: 1200991 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【编程语言之Go介绍与环境安装】

阅读更多

Go语言是谷歌2009发布的第二款开源编程语言。

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

 

Go特色

简洁 快速 安全

并行 有趣 开源,

内存管理,数组安全,编译迅速

 

Go语言具有以下的特征

自动垃圾回收 

更丰富的内置类型 

 函数多返回值 

 错误处理 

 匿名函数和闭包 

 类型和接口 

并发编程 

反射 

语言交互性

 

二、软件安装过程

[root@node1 ~]# file /bin/ls

/bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

[root@node1 ~]# wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz

--12:10:22--  https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz

Resolving storage.googleapis.com... 172.217.24.16, 2404:6800:4008:800::2010

Connecting to storage.googleapis.com|172.217.24.16|:443... connected.

ERROR: certificate common name `*.storage.googleapis.com' doesn't match requested host name `storage.googleapis.com'.

To connect to storage.googleapis.com insecurely, use `--no-check-certificate'.

Unable to establish SSL connection.

[root@node1 ~]# wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz --no-check-certificate

--12:10:49--  https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz

Resolving storage.googleapis.com... 172.217.24.16, 2404:6800:4008:800::2010

Connecting to storage.googleapis.com|172.217.24.16|:443... connected.

WARNING: certificate common name `*.storage.googleapis.com' doesn't match requested host name `storage.googleapis.com'.

HTTP request sent, awaiting response... 200 OK

Length: 90029041 (86M) [application/x-gzip]

Saving to: `go1.8.3.linux-amd64.tar.gz'

 

100%[==================================================>] 90,029,041   341K/s   in 3m 34s 

 

12:14:33 (410 KB/s) - `go1.8.3.linux-amd64.tar.gz' saved [90029041/90029041]

 

[root@node1 ~]# ls

anaconda-ks.cfg      Desktop   go1.8.3.linux-amd64.tar.gz     jdk-7u67-linux-x64.rpm  sqlite-3.5.6.tar.gz

apache-flume-1.6.0-bin.tar.gz  elasticsearch-2.1.1.rpm     grafana-1.9.1.tar.gz           kafka_2.9.1-0.8.2.2.tgz   tomcat7 apache-tomcat-7.0.67.zip       elasticsearch-2.1.1.tar.gz  influxdb-0.9.4.2-1.x86_64.rpm  kibana-4.3.1-linux-x64.tar.gz  yum-3.2.29-30.el6.noarch.rpm

collectd-5.5.0     facette-0.3.0    install.log     logstash-2.1.1.tar.gz   yum-3.2.29-81.el6.centos.noarch.rpm

collectd-5.5.0.tar.gz          facette-0.3.0.tar.gz        install.log.syslog             sqlite-3.5.6

[root@node1 ~]# tar -zxvf go1.8.3.linux-amd64.tar.gz 

[root@node1 ~]# ll

total 404848

-rw-------  1 root   root        883 Nov 22  2015 anaconda-ks.cfg

-rw-r--r--  1 root   root   52550402 May 20  2015 apache-flume-1.6.0-bin.tar.gz

-rw-r--r--  1 root   root    9461749 Dec  7  2015 apache-tomcat-7.0.67.zip

drwxr-xr-x  6 131026  5000      4096 Jan 29  2016 collectd-5.5.0

-rw-r--r--  1 root   root    2244454 May 27  2015 collectd-5.5.0.tar.gz

drwxr-xr-x  2 root   root       4096 Jan 25  2016 Desktop

-rw-r--r--  1 root   root   28896574 Dec 17  2015 elasticsearch-2.1.1.rpm

-rw-r--r--  1 root   root   29007342 Dec 17  2015 elasticsearch-2.1.1.tar.gz

drwxrwxr-x  9 root   root       4096 Jan 29  2016 facette-0.3.0

-rw-r--r--  1 root   root    1040968 Jan 29  2016 facette-0.3.0.tar.gz

drwxr-xr-x 11 root   root       4096 May 24 11:16 go

-rw-r--r--  1 root   root   90029041 May 24 14:09 go1.8.3.linux-amd64.tar.gz

-rw-r--r--  1 root   root    1263568 Dec 29  2014 grafana-1.9.1.tar.gz

-rw-r--r--  1 root   root    8248423 Sep 29  2015 influxdb-0.9.4.2-1.x86_64.rpm

-rw-r--r--  1 root   root      35250 Nov 22  2015 install.log

-rw-r--r--  1 root   root       4264 Nov 22  2015 install.log.syslog

-rwxrwxr-x  1 root   root  126857158 Nov 24  2015 jdk-7u67-linux-x64.rpm

-rw-r--r--  1 root   root   17139880 Nov 24  2015 kafka_2.9.1-0.8.2.2.tgz

-rw-r--r--  1 root   root   30408272 Dec 16  2015 kibana-4.3.1-linux-x64.tar.gz

-rw-r--r--  1 root   root   12222033 Feb  1  2016 logstash-2.1.1.tar.gz

drwxr-xr-x 13   1000 users      4096 May 27 16:28 sqlite-3.5.6

-rw-r--r--  1 root   root    2543979 Jul 30  2016 sqlite-3.5.6.tar.gz

drwxr-xr-x  9 root   root       4096 Feb 26 13:14 tomcat7

-rw-r--r--  1 root   root    1016296 May 10  2012 yum-3.2.29-30.el6.noarch.rpm

-rw-r--r--  1 root   root    1042364 May 27 16:14 yum-3.2.29-81.el6.centos.noarch.rpm

[root@node1 ~]# rm -rf go1.8.3.linux-amd64.tar.gz

[root@node1 ~]# cd go/

[root@node1 go]# ls

api  AUTHORS  bin  blog  CONTRIBUTING.md  CONTRIBUTORS  doc  favicon.ico  lib  LICENSE  misc  PATENTS  pkg  README.md  robots.txt  src  test  VERSION

[root@node1 go]# cd bin/

[root@node1 bin]# ls

go  godoc  gofmt

[root@node1 bin]# pwd

/root/go/bin

[root@node1 bin]# vi ~/.bash_profile 

 

JAVA_HOME=/opt/es5.0/jdk1.8.0_111

HADOOP_HOME=/opt/hadoop

STORM_HOME=/opt/storm096

GO_HOME=/root/go

 

 

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$STORM_HOME/bin:$GO_HOME/bin

 

export PATH  JAVA_HOME HADOOP_HOME STORM_HOME GO_HOME

 

 

[root@node1 bin]# source  ~/.bash_profile 

[root@node1 bin]# go

Go is a tool for managing Go source code.

 

Usage:

 

        go command [arguments]

 

The commands are:

 

        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

 

Use "go help [command]" for more information about a command.

 

Additional help topics:

 

        c           calling between Go and C

        buildmode   description of build modes

        filetype    file types

        gopath      GOPATH environment variable

        environment environment variables

        importpath  import path syntax

        packages    description of package lists

        testflag    description of testing flags

        testfunc    description of testing functions

 

Use "go help [topic]" for more information about that topic.

 

[root@node1 ~]# go env

GOARCH="amd64"

GOBIN=""

GOEXE=""

GOHOSTARCH="amd64"

GOHOSTOS="linux"

GOOS="linux"

GOPATH="/root/go"

GORACE=""

GOROOT="/usr/local/go"

GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"

GCCGO="gccgo"

CC="gcc"

GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"

CXX="g++"

CGO_ENABLED="1"

PKG_CONFIG="pkg-config"

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

[root@node1 ~]# go build demo.go 

go: cannot find GOROOT directory: /usr/local/go/go

[root@node1 ~]# export GOROOT=/usr/local/go

 

[root@node1 ~]# export GOROOT=/usr/local/go/go

[root@node1 ~]# go build demo.go 

go: cannot find GOROOT directory: /usr/local/go/go

解释这是GO语言的一个小Bug:原来还需设置GOROOT这个属性 The default is hard-coded at compile time; in thelinux distribution it is set to /usr/local/go

[root@node1 ~]# export GOROOT=/usr/local/go

 

[root@node1 ~]# mv go/  /usr/local/

mv: cannot move `go/' to a subdirectory of itself, `/usr/local/go'

[root@node1 ~]# pwd

/root

[root@node1 ~]# rm -rf /usr/local/go/

[root@node1 ~]# mv -r go/  /usr/local/

mv: invalid option -- r

Try `mv --help' for more information.

[root@node1 ~]# cp  -r go/  /usr/local/

[root@node1 ~]# rm -rf  go/

解决方案:安装go语言在/usr/local/go目录下面

 

[root@node1 ~]# vi ~/.bash_profile 

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

 

JAVA_HOME=/opt/es5.0/jdk1.8.0_111

HADOOP_HOME=/opt/hadoop

STORM_HOME=/opt/storm096

GO_HOME=/usr/local/go

 

 

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$STORM_HOME/bin:$GO_HOME/bin

 

export PATH  JAVA_HOME HADOOP_HOME STORM_HOME GO_HOME

unset USERNAME

 

 

[root@node1 ~]# vi demo.go 

package main

import "fmt"

 

func main() {

   fmt.Println("Hello, World!")

}

~

"demo.go" 6L, 75C written

[root@node1 ~]# go build demo.go 

[root@node1 ~]# ls

 influxdb-0.9.4.2-1.x86_64.rpm  kibana-4.3.1-linux-x64.tar.gz  yum-3.2.29-30.el6.noarch.rpm

collectd-5.5.0.tar.gz          elasticsearch-2.1.1.tar.gz  install.log                    logstash-2.1.1.tar.gz          yum-3.2.29-81.el6.centos.noarch.rpm

[root@node1 ~]# sh demo

demo: demo: cannot execute binary file

[root@node1 ~]# ./demo 

Hello, World!

[root@node1 ~]# go run demo.go 

Hello, World!

[root@node1 ~]# 



 

  • 大小: 62.7 KB
  • 大小: 58.8 KB
0
0
分享到:
评论

相关推荐

    Go语言编程_许式伟_完整版1

    《Go语言编程》一书由许式伟、吕桂华等人编著,旨在介绍Go语言这一新兴编程语言的全貌及其重要特性。Go语言在设计时考虑到编程的简洁性、并行与分布式支持、软件工程需求以及编程哲学的创新,力图在互联网时代成为一...

    Go语言高级编程

    这些知识点对于希望在Go语言环境下构建Web应用的开发者来说至关重要。 书的附录部分提供了Go语言常见问题的总结、参考资料以及作者柴树杉的简介,这些都是读者在深入学习Go语言时可以参考的重要信息。 本书《Go...

    Go语言编程goland.pdf

    Go语言是一种静态类型、编译型、并发型、垃圾回收的编程语言,由Google开发,于2009年发布。Go语言的设计目标是提供一种高效、简洁、可靠的编程语言,结合了静态类型和动态类型语言的优点。 语言简史 Go语言的设计...

    golang 语言编程

    Go语言,又称Golang,是Google在2009年推出的开源编程语言,它以简洁、高效、并发支持著称,广泛应用于云计算、Web服务和系统软件开发等领域。 1. **Go语言简介** Go语言由Robert Griesemer、Rob Pike及Ken ...

    go语言高级编程_cut6zj_go语言_Go_golang_golang高级编程_

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、C风格的编程语言。它在设计时兼顾了开发效率和系统性能,因此在云计算、微服务和网络编程等领域得到广泛应用。 书中的内容...

    go语言编程

    首先,Go语言在面向过程和面向对象编程语法上都进行了介绍,并且通过与其他主流编程语言的比较,帮助读者理解Go语言的设计动机。Go语言强调简单性,借鉴了C语言的设计哲学,但同时提供对并行编程的原生支持。 Go...

    是一本全面介绍 Go 编程语言的权威指南 它涵盖了 Go 语言的语法、特性、标准库和最佳实践,适合新手和有经验的开发者阅读

    Tutorial: 提供了一个快速入门指南,介绍了如何安装和配置 Go 开发环境,以及如何编写、编译和运行 Go 程序。 Basic Data Types: 讲解了 Go 语言的基本数据类型,包括整数、浮点数、布尔值、字符串等,并介绍了类型...

    Golang,Go语言编程详解

    Go是什么,Golang,Go语言的环境搭建,Go语言编程详解,Go编程示例

    Go语言基础语法+Go语言进阶特性+Go语言并发编程+Go语言网络编程+Go语言Web开发基础+Go语言Web框架实战全套教程

    Go语言基础语法 Go语言进阶特性 Go语言并发编程 Go语言网络编程 Go语言Web开发基础 Go语言Web框架实战 Go语言数据库交互 Go语言性能优化 ...Go语言在云原生环境的应用 Go语言安全编程 Go语言社区与最佳实践

    用JetBrains PyCharm IDE搭建Go语言开发环境.doc

    ### 配置Go语言环境变量 1. 安装完Go SDK后,你需要将Go的安装路径添加到系统的环境变量中。这通常涉及到编辑`Path`变量,并添加Go的bin目录。 2. 在Windows上,可以通过右键点击“我的电脑”或“计算机”,选择...

    Go-PHP绑定至Go编程语言(Golang)

    标题 "Go-PHP绑定至Go编程语言(Golang)" 指的是将PHP这门流行的Web开发语言与Go(Golang)编程语言进行交互的技术。Go语言以其高效、并发支持和简洁的语法在系统编程和微服务领域受到广泛关注,而PHP则在Web开发中...

    google的go编程语言安装及配置

    #### 二、Go编程语言的安装与配置 ##### 2.1 准备工作 在开始安装Go之前,需要确保已经安装了一些必要的工具: - **Mercurial**: Go语言使用Mercurial作为版本控制系统。可以通过以下命令安装: ```bash sudo apt...

    GoC编程图形化c++编程电脑版安装包

    1. **C++编程语言**: C++是一种强大的、通用的、面向对象的编程语言,由Bjarne Stroustrup在C语言的基础上扩展开发。它支持过程化编程、面向对象编程以及泛型编程,广泛应用于系统软件、游戏开发、服务器端应用等...

    尚硅谷_韩顺平_Go语言核心编程.docx

    Golang(Go语言)是一种开源的编程语言,它以其简洁的语法、高效的性能以及现代软件工程的最佳实践而受到广泛欢迎。在学习Golang时,可以重点关注以下几个方面: - **基础语法**:包括变量、数据类型、控制结构等...

    Go语言教程开发环境安装

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、强类型编程语言。Go语言的设计目标是提高开发效率和程序性能,同时保持代码简洁、清晰和可读性强。它结合了C语言的高效与...

    GO 语言学习辅导共220页.pdf

    第一章介绍了Go语言的安装与配置。首先,讲解了系统需求,包括对不同操作系统(如FREEBSD, LINUX, MAC OS X, 和WINDOWS)的基本要求。接着,教程详细阐述了如何下载GO TOOLS,这是学习和开发Go语言的基础。在安装...

    《Go语言程序设计 (新锐编程语言集萃)》萨默菲尔德(作者)mobi

    书中从如何获取和安装Go语言环境,以及如何建立和运行Go程序开始,逐步介绍了Go语言的语法、特性以及一些标准库,内置数据类型、语句和控制结构,然后讲解了如何在Go语言中进行面向对象编程,Go语言的并发特性,如何...

    go语言核心编程

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。自2009年发布以来,Go语言因其简洁的语法、高效的性能以及对并发编程的良好支持,受到了广大开发者的欢迎。...

Global site tag (gtag.js) - Google Analytics