go linux 学习记录
1 yum install mercurial 安装mercurial包
2 yum install git 安装git包
3 yum install gcc 安装gcc
4 然后就可以下载golang的压缩包了 下载地址http://golangtc.com/download 选择正确版本 注意32位和64位 我下的是go1.2.linux-amd64.tar.gz
5 tar -zxvf go1.2.linux-amd64.tar.gz 解压该包 我的放在/var下 解压后会生成一个go的文件夹
6 修改环境变量 vi /etc/profile
export GOROOT=/var/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/var/gopkg
GOPATH和GOROOT修改为你的路径即可
7 刷新环境变量 source /etc/profile
8 进入go/test/ 执行go run helloworld.go
9 切换用户后也需要执行source /etc/profile 刷新环境变量 才可执行go run helloworld.go;
vi /etc/profile 为环境变量配置
export GOPATH=/var/www/gogogo/test 设置临时环境变量
摘自:http://jingyan.baidu.com/article/90895e0ffb4f1764ec6b0baa.html
二次yum install 安装
现在系统为centos 7.2
yum install go
执行安装
查看了 /etc/profile 环境变量文件 未发现有关于go 的环境配置
find / -name golang
发现
/usr/lib/golang
修改环境变量文件
export GOROOT=/usr/lib/golang(golang的安装目录)
export PATH=$GOROOT/bin:$PATH
export GOPATH=/var/www/gogogo/BeegoTest(我一个项目的目录)
保存退出
刷新环境变量
source /etc/profile (我觉得这个就是在此导入profile到系统中的概念,和msyql 的source 差不多区别)
然后进去我的项目src中 go run main.go
执行了我的项目,即可。
继续研究export GOPATH
2016-12-09
os 包:
os 包以跨平台的方式,提供一些与操作系统交互的函数和变量。
os.Args变量是一个字符串的切片(slice) ,类似于数组,s[i]:访问s中的单个元素,s[n,m]:获取n至m的参数,不包括第m个。使用该包需要在前面import()中加入"os",以引入。
for 循环几种形式。go语言中只有for 循环一种循环方式
for condition { //当condition 为true 时 执行 do
do...
}
for { 死循环
do ....
}
for _, arg := range os.Args[i:] { //遍历 传给_,arg 然后do ,range 会产生两个数值,索引和值,前面必须要有两个变量来接受,否则错误,_,表示空标识符,程序自动会丢弃掉。
do
}
map 类似于数组,存储了键/值(key/value)的集合,
array:由key=>value 格式;官方=》array 由[n]<type> 定义, n 标示array 的长度,而<type> 标示希望存储的内容的类型。对array 的元素赋值或索引是由方括号完成的:
标准定义声明使用格式:
var arr = [10]int //有固定大小
arr[0] = 1 //赋值
arr[1] = 2 //赋值
简写:a := [10]int{1,2}//定义一个长度为10的数组
a = [...]int{1,2,3,4,5}//数组会自动计算后面元素个数来设置长度
二维数组:
a := [2][2]int{[2]int{1,2},[2]int{3,4}} =》 a := [2][2]int{ [...]int{1,2}, [...]int{3,4} }
测试得知:二维数组中二级数组是需要制定长度的。
固定长度后没有定义的值都为0
string
内建函数
close new panic complex delete make recover real len append print imag cap copy println
close 用于channel 通讯。使用它来关闭channel,参阅第7 章了解更多。
delete 用于在map 中删除实例。
len 和cap 可用于不同的类型, len 用于返回字符串、slice 和数组的长度。参
阅“array、slices 和map” 小节了解更多关于slice、数组和函数cap 的详细信息。
new 用于各种类型的内存分配。参阅“用new 分配内存” 的第59 页。
make 用于内建类型(map、slice 和channel)的内存分配。参阅“用make 分配
内存” 的第59 页。
copy 用于复制slice。参阅本章的“slice”。
append 用于追加slice。参阅本章的“slice”。
panic 和recover 用于异常处理机制。参阅“恐慌(Panic)和恢复(Recover)”
常用包
标准的 Go 代码库中包含了大量的包,并且在安装 Go 的时候多数会伴随一起安 装。浏览 $GOROOT/src/pkg 目录并且查看那些包会非常有启发。无法对每个包就 加以解说,不过下面的这些值得讨论: a
fmt
包 fmt 实现了格式化的 I/O 函数,这与 C 的 printf 和 scanf 类似。格式化短
语派生于 C 。一些短语(%-序列)这样使用:
%v
默认格式的值。当打印结构时,加号(%+v)会增加字段名;
%#v
Go 样式的值表达;
%T
带有类型的 Go 样式的值表达;
a描述来自包的go doc。额外的解释用斜体。
这个包提供了原始的 I/O 操作界面。它主要的任务是对 os 包这样的原始
的 I/O 进行封装,增加一些其他相关,使其具有抽象功能用在公共的接口
上。
这个包实现了缓冲的 I/O。它封装于 io.Reader 和 io.Writer 对象,创建了另
一个对象(Reader 和 Writer)在提供缓冲的同时实现了一些文本 I/O 的功
能。
常用的包
53
io
bufio
sort
sort 包提供了对数组和用户定义集合的原始的排序功能。
strconv
strconv 包提供了将字符串转换成基本数据类型,或者从基本数据类型转
换为字符串的功能。
os
os 包提供了与平台无关的操作系统功能接口。其设计是 Unix 形式的。
sync
sync 包提供了基本的同步原语,例如互斥锁。
flag
flag 包实现了命令行解析。 参阅 “命令行参数” 在第 91 页。
encoding/json
encoding/json 包实现了编码与解码 RFC 4627 [5] 定义的 JSON 对象。
text/template
数据驱动的模板,用于生成文本输出,例如 HTML。
将模板关联到某个数据结构上进行解析。模板内容指向数据结构的元素
(通常结构的字段或者 map 的键)控制解析并且决定某个值会被显示。模
板扫描结构以便解析,而 “游标” @ 决定了当前位置在结构中的值。
net/http
net/http 实现了 HTTP 请求、响应和 URL 的解析,并且提供了可扩展的 HTTP
服务和基本的 HTTP 客户端。
unsafe
unsafe 包包含了 Go 程序中数据类型上所有不安全的操作。 通常无须使用
这个。
reflect
reflect 包实现了运行时反射,允许程序通过抽象类型操作对象。通常用于
处理静态类型 interface{} 的值,并且通过 Typeof 解析出其动态类型信息,
通常会返回一个有接口类型 Type 的对象。
参阅 6,第 “自省和反射” 节。
os/exec
os/exec 包执行外部命令。
go linux 学习记录的更多相关文章
- linux学习记录(第六章、Linux 的文件权限与目录配置)
书看的是鸟哥的私房菜,系统用的是centos.被微软坑了N年才发现linux才是王道. 在这里记录些学习的记录.备忘
- Linux 学习记录 一(安装、基本文件操作).
Linux distributions主要分为两大系统,一种是RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等都是这类:一种则是使用Debian的dpkg方式安装软件的 ...
- Linux 学习记录一(安装、基本文件操作).
Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...
- Linux学习记录
---恢复内容开始--- linux与unix的关系 linux是借鉴了unix设计思想,也称linux位类unix系统. Linux常用命令 1.命令基本格式 命令[选项][参数] 注意:个别命令不 ...
- Linux 学习记录
整理学习Linux操作系统遇到的不理解的概念.逐个进行补充.我们用的版本是CentOs. what's the gcc? what's the yum? what's the wget?
- linux学习记录.1.安装
最近想了想决定开始学习linux. 在百度了一番后开始了安装,虚拟机VirtualBox,ubuntu. 基于VirtualBox虚拟机安装Ubuntu图文教程: http://blog.csdn.n ...
- Linux学习记录(一)
1.Linux的简介 1.1.Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林 ...
- Linux学习记录(一):常用命令
此篇文章为博主在Linux学习过程中的一些记录,记录在此方便查阅. 常用命令总结 ls 显示目录内容 (list directory contents) ls 不显示隐藏的文件和子目录 ls -a 显 ...
- linux学习记录 常用指令大全
1.开启关闭服务器(即时生效): service iptasbles start service iptasbles stop 2.在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysc ...
- Linux学习记录--匿名沟通渠道
匿名沟通渠道 管道Linux最初支持Unix IPC其中的一种形式.具有下列特征: 1.管道是半双工.数据可以仅在一个方向流动:当双方需要沟通.建设两条管线需要. 2.仅仅能用于父子进程或者兄弟进程之 ...
随机推荐
- Linux 多线程信号量同步
PV原子操作 P操作: 如果有可用的资源(信号量值>0),则此操作所在的进程占用一个资源(此时信号量值减1,进入临界区代码); 如果没有可用的资源(信号量值=0),则此操作所在的进程被阻塞直到系 ...
- Ambari工具之认识学习01
随着大数据的越发流行,大大小小的互联网公司都开始参与一些大数据相关的业务,都想从中分一杯羹.Hadoop是大数据的典型代表,也可以说现在的领头大哥,很多互联网巨头都在使用hadoop,包括BAT等大公 ...
- Python定时任务框架APScheduler 3.0.3 Cron示例
APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.基 ...
- C++ 中指针与引用的区别
指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过v ...
- Nagios 自定义插件与安装使用之监控dead datanodes
现在我使用nagios来监控hadoop的核心进程,rm,nm,dn,nn,zkfc,jn,zk等,但是有时候进程虽然还在,但是日志不刷新,web ui上可以看到有些datanodes节点已经变为de ...
- 【转】selenium学习路线
selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...
- leetcode-Excel Sheet Column Title
题目: 把数字转化为excel形式的字符表示.示例:1->A 2->B 3->C ... 26->Z 27->AA... 解题思路: 乍一看有点像进制转换题目,不过细想想 ...
- poj[3093]Margaritas On River Walk
Description One of the more popular activities in San Antonio is to enjoy margaritas in the park alo ...
- 基于jquery的tips悬浮消息提示插件tipso
<a href="javascript:;" class="disabled" data-tipso="Tips" id=" ...
- HTML 学习笔记 CSS(选择器4)
CSS 后代选择器 后代选择器(descendant selector)又称为包含选择器.后代选择器可以选择作为某元素后代的元素. 根据上下文选择元素 我们可以定义后代选择器来创建一些规则,使这些规则 ...