03 2020 档案
摘要:Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精
阅读全文
摘要:tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tc
阅读全文
摘要:1 #define EPERM 1 // Operation not permitted 操作不允许 2 #define ENOENT 2 // No such file or directory 文件/路径不存在 3 #define ESRCH 3 // No such process 进程不存在
阅读全文
摘要:I/O复用服务器 I/O 复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。它也可用于并发服务器的设计,常用函数 select() 或 epoll() 来实现。详情,请看《select、poll、epoll的区别使用》。 socket(
阅读全文
摘要:多线程服务器是对多进程的服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程与创建进程要快 10100 倍,所以又把线程称为“轻量级”进程。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存、全局变量等信息,这
阅读全文
摘要:一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。 多进程并发服务器 在 Linux 环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请
阅读全文
摘要:1、实用的 xargs 命令 在平时的使用中,我认为xargs这个命令还是较为重要和方便的。我们可以通过使用这个命令,将命令输出的结果作为参数传递给另一个命令。 比如说我们想找出某个路径下以 .conf 结尾的文件,并将这些文件进行分类,那么普通的做法就是先将以 .conf 结尾的文件先找出来,然后
阅读全文
摘要:二、字符串和文本 1、使用多个界定符分割字符串 使用 方法: 使用 函数时候,需要特别注意的是正则表达式中是否包含一个括号捕获分组。 如果使用了捕获分组,那么被匹配的文本也将出现在结果列表中。比如,观察一下这段代码运行后的结果: 获取分割字符在某些情况下也是有用的。 比如,你可能想保留分割字符串,用
阅读全文
摘要:一、数据解构和算法 1、解压赋值多个变量 采用解构的方法。可迭代对象才可以,变量数量与元素个数要一一对应,或者采用 万能接收。 2、解压可迭代对象赋值多个变量 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 去掉最大值和最小值的方法: 3、保留最后N个元素 4、查找最大或最小的N个元素 py
阅读全文
摘要:E R 绘制E R图首先要了解什么是实体,什么是属性,什么是联系. 1.首先实体是指现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体. 2.属性可以理解为实体的特征,针对于数据库中的表而言属性
阅读全文
摘要:Go 语言操作Mysql 连接mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Mana
阅读全文
摘要:GO 语言文件处理 Go 语言文件创建 os包提供了操作系统函数的不依赖平台的接口。设计为Unix风格的,虽然错误处理是go风格的;失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。 创建目录 当前目录 Getwd返回一个对应当前工作目录的根路径。如果当前目录可以经过多条路径抵达(因为硬链
阅读全文
摘要:GO 语言网络编程 Go 语言Socket编程 TCP Socket Go语言的 net 包中有一个 TCPConn 类型,可以用来建立 TCP 客户端和 TCP 服务器端间的通信通道,TCPConn 类型里有两个主要的函数: CPConn 可以用在客户端和服务器端来读写数据。 还有我们需要知道一个
阅读全文
摘要:Go 语言并发 Golang从语言层面就对并发提供了支持,而goruntine是Go语言并发设计的核心。 Go语言的并发机制运用起来非常舒适,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。 进程&线程 A、进程是程序在操作系统中的一次执行过程,系统进行资源分配和调
阅读全文
摘要:Go 语言锁机制 Go 语言互斥锁 Go语言的sync包中实现了两种锁 Mutex (互斥锁)和 RWMutex (读写锁),其中 RWMutex 是基于 Mutex 实现的,只读锁的实现使用类似引用计数器的功能。 互斥锁 Mutex 是互斥锁,有 Lock()加锁、Unlock()解锁两个方法,使
阅读全文
摘要:Go 语言异常处理与测试 Go 语言异常处理 Go语言没有结构化异常,使用 panic 抛出错误,recover 捕获错误。 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理。 panic: 1、内置函数 2、假如函数F中书写
阅读全文
摘要:GO 语言反射 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访
阅读全文
摘要:Go 语言方法 go 语言方法定义 方法介绍 在 Go 语言中有一个概念和函数极其相似,叫做方法 。Go 语言的方法其实是作用在接收者(receiver)上的一个函数,接收者是某种非内置类型的变量。因此方法是一种特殊类型的函数。 接收者类型可以是(几乎)任何类型,不仅仅是结构体类型:任何类型都可以有
阅读全文
摘要:Go 语言递归函数 递归,就是在运行的过程中调用自己。 Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 斐波那契数列
阅读全文
摘要:http://blog.itpub.net/31561269/viewspace 2638485/
阅读全文
摘要:GO 语言make和new Go语言中 new 和 make 是两个内置函数,主要用来创建并分配类型的内存。new 只分配内存,而 make 只能用于 slice、map 和 channel 的初始化。 new 在Go语言中,new 函数描述如下: new 函数只接受一个参数,这个参数是一个类型,并
阅读全文
摘要:Go 语言自定义类型与指针 Go 语言指针 Go 语言指针 变量是一种使用方便的占位符,用于引用计算机内存地址。 Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。 什么是指针 一个指针变量指向了一个值的内存地址。 类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如
阅读全文
摘要:GO 语言引用类型 Go 语言切片 Go 语言切片(Slice) Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。 定
阅读全文
摘要:Go 语言函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉了编译器函数的名称,返回类型,和参数。 Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型
阅读全文
摘要:Go 语言循环语句 Go 语言提供了以下几种类型循环处理语句: | 循环类型 | 描述 | | : | : | | "for 循环" | 重复执行语句块 | | "循环嵌套" | 在 for 循环中嵌套一个或多个 for 循环 | 循环控制语句 循环控制语句可以控制循环体内语句的执行过程。 GO 语
阅读全文
摘要:Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。 下图展示了程序语言中条件语句的结构: | 语句 | 描述 | | : | : | | "if 语句" | if 语句 由一个布尔表达
阅读全文
摘要:Go 语言运算符 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 接下来让我们来详细看看各个运算符的介绍。 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 | 运算符
阅读全文
摘要:GO 语言注释 Go语言的注释主要分成两类,分别是单行注释和多行注释。 单行注释简称行注释,是最常见的注释形式,可以在任何地方使用以//开头的单行注释;多行注释简称块注释,以/开头,并以/结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。 在 package 语句之前的注释内
阅读全文
摘要:Go 语言类型别名 在 Go 1.9 版本之前定义内建类型的代码是这样写的: 而在 Go 1.9 版本之后变为: 区分类型别名和类型定义 定义类型别名的写法: 类型别名规定:TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类型. 类型别名与类型定义表面上
阅读全文
摘要:GO 语言基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64 其中, 就是我们熟知的 型, 对应C语言中的 型, 对应C语言中的 型。 | 类型 | 描述 | | : : | :
阅读全文
摘要:GO 语言常量 相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把 换成了 ,常量在定义的时候必须赋值。 声明了 和`e`这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。 多个常量也可以一起声明: const同时声明多个常量时
阅读全文
摘要:GO 语言变量的生命周期 生命周期是指程序执行过程中变量存在的时间段。 包变量(全局变量)和局部变量两种变量的生命周期。 ① 包变量一直常驻在内存到程序的结束,然后被系统垃圾回收器回收。也就是说包变量的生命周期是整个程序的执行时间。 ② 局部变量,例如一个函数中定义的变量。它有一个动态的生命周期:每
阅读全文
摘要:GO 语言变量逃逸分析 栈 栈只允许从线性表的同一端放入和取出数据,按照后进先出(LIFO,Last InFirst Out)的顺序 栈的特点: 先进后出 变量和栈有什么关系 栈可用于内存分配,栈的分配和回收速度非常快 Go语言默认情况下会将 c 和 x 分配在栈上,这两个变量在 calc() 函数
阅读全文
摘要:GO 语言变量 Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和 (下划线)组成,并且只能以字母和 开头。 举几个例子: ,
阅读全文

浙公网安备 33010602011771号