骏马金龙

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!
我本问道人,道心不坚,必将与道无缘!谨记心中。
目标:将IT技术的研究发展成终身追求,为同在路上或刚上路的道友做一点点贡献(2018)
友情提示:还没找工作的人,请别看我的文章,会让你觉得原来都白学了,从而耽误找工作

摘要: " Perl书籍下载 " 密码:kkqx Perl语言入门 本部分是《Perl语言入门 第六版》(英文书名:Learning Perl)的学习笔记,这本书是Perl家族的"小羊驼"书籍。我个人学习这本书的感觉,如果有shell基础,perl入门挺容易的。 这部分文章是我学习这本书时的总结和稍微的整理阅读全文
posted @ 2018-08-21 16:32 骏马金龙 阅读(223) 评论(0) 编辑
摘要: 今天下午突然看到: 原来,我已经写了300多篇博客了。现在想想,我收获了很多,也失去了很多。现在我想写一篇文章,感想类的文章,也是这么久以来、这么多文章中唯一的一篇非技术类文章。 开写之前,先把我写的3大系列文章的目录贴出来,几乎所有文章都在这3个系列里。 "Linux & shell基础系列:ht阅读全文
posted @ 2018-07-16 00:42 骏马金龙 阅读(6913) 评论(111) 编辑
摘要: 以下是本系列文章的大纲,此页博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接。 如果觉得文章不错,还请帮忙点下"推荐",各位的支持,能激发和鼓励我更大的写作热情。在此先行谢过! Linux系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/704阅读全文
posted @ 2017-09-24 09:41 骏马金龙 阅读(6641) 评论(0) 编辑
摘要: 以下是本系列文章的大纲,其中个人感觉较好的文章或感觉与众不同有看点的就自封了一个(精)字。 此页所列博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接。 如果觉得文章不错,还请帮忙点下"推荐",各位的支持,能激发和鼓励我更大的写作热情。在此先行谢过! Linux系列文章大纲:http阅读全文
posted @ 2017-09-22 17:45 骏马金龙 阅读(9284) 评论(10) 编辑
摘要: 本人已经此系列的sed文章整理到pdf中,欢迎下载:玩透sed:探究sed原理 sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中的疑难杂症 说明: 阅读全文
posted @ 2017-09-09 21:54 骏马金龙 阅读(1209) 评论(1) 编辑
摘要: 我将尽量写出整个体系的内容,初学的朋友可以视之为学习资料,如同看书一样。虽然网上培训视频比较好入门,大方向上的知识点也还算完整,我个人也是这么入门的(基本上看完了某哥和某孩共两整期的视频课程),但看完后入门了,在回炉深造的时候,却发现这些视频课程缺少很多内容,甚至说,看完视频会遗漏很多非常重要的知识阅读全文
posted @ 2017-06-19 13:52 骏马金龙 阅读(32568) 评论(33) 编辑
摘要: openssl系列篇(翻译整理man文档以及用法示例) 证书请求、证书颁发、CA相关阅读全文
posted @ 2016-11-22 21:09 骏马金龙 阅读(492) 评论(3) 编辑
摘要: do语句块结构如下: do语句块像是匿名子程序一样,没有名称,给定一个语句块,直接执行。且和子程序一样,do语句块的返回值都是最后一个执行的语句的返回值。 例如,将使用if elsif else结构进行赋值的行为改写成do。以下是if elsif else结构: 改写成do结构: 在perl中,使用阅读全文
posted @ 2018-09-24 14:55 骏马金龙 阅读(3) 评论(0) 编辑
摘要: fork + exec fork是低层次的系统调用,通过复制父进程来创建子进程。 fork的行为 fork用来拷贝当前进程,生成一个基本完全一样的子进程。 如果fork成功: 则表示成功创建子进程,这时会有两条执行路线:继续执行父进程、执行子进程 fork成功时,会返回两个值:对父进程返回子进程的p阅读全文
posted @ 2018-09-23 20:31 骏马金龙 阅读(3) 评论(0) 编辑
摘要: 调用操作系统命令:system函数 system函数可以直接让perl调用操作系统中的命令并执行。 system入门示例 例如: 执行结果: 注意system的参数可以被单个引号包围,也可以用多个引号分隔成多个参数,如果分隔开,system会将它们用空格的方式连接起来。 另外,上面使用了单引号、双引阅读全文
posted @ 2018-09-23 00:48 骏马金龙 阅读(8) 评论(0) 编辑
摘要: use加载模块 安装模块后,都会有对应的文档,可以通过 来获取模块的使用帮助。 例如:获取 的使用帮助。 要在perl程序中使用模块,需要使用use来装载(load)模块。例如, 模块: 一般来说,所有要装载的模块都会写在perl程序的开头,因为use语句是程序编译期间执行的,而且以后要查看、修改程阅读全文
posted @ 2018-09-21 12:24 骏马金龙 阅读(12) 评论(0) 编辑
摘要: Perl模块管理 perl有自带的模块,还有第三方模块。自带的模块是随perl安装而安装好的,第三方模块需要从CPAN(Comprehensive Perl Archive Network)上下载并安装,可以从 "https://metacpan.org" 中查找所需第三方模块。 可以借助 来间接 阅读全文
posted @ 2018-09-21 11:14 骏马金龙 阅读(10) 评论(0) 编辑
摘要: Perl数组和hash相关函数 内置的数组函数有: 内置的hash函数有: 有些是重复的。所以放在一起解释。 数组相关函数: push:将单元素或一个列表追加到数组的尾部,返回追加后的数组长度具体示例 "push" pop:删除数组中的最后一个元素,返回被pop掉的元素,具体示例 "top" uns阅读全文
posted @ 2018-09-20 13:44 骏马金龙 阅读(7) 评论(0) 编辑
摘要: 内置的列表函数有: join:将多个元素使用给定字符串联起来 "join" grep:从列表中筛选符合条件的元素执行对应的代码块 "grep" map:对列表中的元素执行给定操作,后文详细示例 "map" reverse:反转列表、标量字符串、hash,后文详细示例 "reverse" sort:按阅读全文
posted @ 2018-09-20 09:12 骏马金龙 阅读(9) 评论(0) 编辑
摘要: Perl字符串相关函数 字符串的内置函数有: 分为几类: 字符大小写转换类: lc:(lower case)将后面的字母转换为小写,是 的实现 lcfirst:将后面第一个字母转换为小写,是 的实现 uc:(uppercase)将后面的字母转换为大写,是 的实现 ucfirst:将后面第一个字母转换阅读全文
posted @ 2018-09-18 02:25 骏马金龙 阅读(6) 评论(0) 编辑
摘要: tr和 是等价的。用来实现一一映射,但也有额外的功能,就像Linux下的tr命令一样。 用法: 例如: 1.映射功能 将小写字母e替换为大写字母E。 将小写字母全替换为大写字母。 如果对同一个字母指定不同的映射集,那么第一个映射将生效。 2.使用r返回替换后的结果 该修饰符使得处理数据前会先拷贝一份阅读全文
posted @ 2018-09-16 12:29 骏马金龙 阅读(8) 评论(0) 编辑
摘要: `m// s/// s///`用起来会简单很多。 用法格式为: 它表示用reg去搜索 中的内容,并将搜索出来的内容替换为replacement。 1. 的斜线可以替换为其他对称的符号(括号类)或相同的符号 。 例如 、`s s%%% s()() s{}{} s`、 等,还可以混用符号,例如 、`s{阅读全文
posted @ 2018-09-16 10:30 骏马金龙 阅读(7) 评论(0) 编辑
摘要: 前言 想必学习perl的人,对基础正则表达式都已经熟悉,所以学习perl正则会很轻松。这里我不打算解释基础正则的内容,而是直接介绍基础正则中不具备的但perl支持的功能。关于基础正则表达式的内容,可参阅 "基础正则表达式" 。 我第一个要说明的是,perl如何使用正则。还记得当初把《精通正则表达式》阅读全文
posted @ 2018-09-14 19:28 骏马金龙 阅读(104) 评论(0) 编辑
摘要: 基础正则 元字符: :匹配任意单个字符,但不能匹配换行符 :匹配前面那个字符0或多次 :匹配前面那个字符0或一次 :匹配前面那个字符1次以上 :匹配前面那个字符至少M,最多N次 :匹配前面那个字符至少M次,最多无限制 :匹配前面那个字符最多N次(最少当然是0次)。注意,perl正则不支持这种方式 :阅读全文
posted @ 2018-09-10 17:17 骏马金龙 阅读(53) 评论(0) 编辑
摘要: 分片(slice) 在perl中,如果想要取得一部分变量、一部分列表内容、一部分hash内容,可以采用分片(切片)的方式。 注意,perl并未提供字符串的切片方式,但可以使用内置函数substr()来实现一样的功能。 空变量赋值 例如,有些语言(如golang)支持空变量赋值(如golang),以便阅读全文
posted @ 2018-09-10 11:44 骏马金龙 阅读(13) 评论(0) 编辑
摘要: time用于返回当前时间点,但返回结果是以从1970年1月1日(纪元由操作系统决定,但unix系统一般都是1970年1月1日)距离现在的秒数表示的 localtime用于返回给定时间的秒、分、时、日、月、周、年等9个部分的时间属性 gmtime和localtime类似,但是返回的UTC时间 loca阅读全文
posted @ 2018-09-08 23:36 骏马金龙 阅读(10) 评论(0) 编辑
摘要: 在shell中使用 来对文件名进行通配扩展,在Perl中也同样支持文件名通配。而且perl中的glob通配方式和shell的通配方式完全一致,实际上perl的glob函数就是直接调用csh来通配的(如果不存在csh,则使用其它shell),也因此通配是一个效率较低的操作。 glob通配函数 注意: 阅读全文
posted @ 2018-09-08 16:59 骏马金龙 阅读(9) 评论(0) 编辑
摘要: File\::Copy复制文件 File\::Copy模块提供了copy函数和cp函数来复制文件,它们参数上完全一致,但行为上稍有区别。 用法大致如下: 两个参数都可以是文件或文件句柄或者文件句柄通配,第一个参数指定源,第二个参数指定目标 如果第一个参数是文件句柄,那么将直接从文件句柄来读取数据,如阅读全文
posted @ 2018-09-08 15:33 骏马金龙 阅读(13) 评论(0) 编辑
摘要: 注意,这些操作的对象是文件名(相对路径/绝对路径),而非文件/目录句柄,句柄只是perl和文件系统中文件的关联通道,而非实体对象。 创建文件 在unix类操作系统中有一个touch命令可以非常方便的创建文件,还能批量创建一些名称规律的文件。但实际上touch的主要介绍中却是"修改文件时间戳",创建文阅读全文
posted @ 2018-09-06 23:24 骏马金龙 阅读(47) 评论(0) 编辑
摘要: 在shell中通过test命令或者中括号 可以进行文件测试以及其它类型的测试,例如判断文件是否存在,比较操作是否为真等等。perl作为更强大的文本处理语言,它也有文件测试类表达式,而且和shell的文件测试用的字母符号都类似。 perl中测试文件的属性来源是perl的内置函数stat,它可以获得文件阅读全文
posted @ 2018-09-05 00:29 骏马金龙 阅读(26) 评论(0) 编辑
摘要: 另一篇关于终端会话共享的文章: "Linux录制、回放和共享终端操作" kibitz可以将一个会话(你所操作的)实时分享给本机的其它登陆用户(你想让别人看到的)。通过这个工具,你敲什么命令,输出了什么内容对方都能立即看到,用来演示很不错。 它是是expect中的一个工具,所以先安装expect。 使阅读全文
posted @ 2018-09-04 12:49 骏马金龙 阅读(60) 评论(1) 编辑
摘要: open函数除了 这种高级重定向模式,perl也有对应的模式。 打开管道文件句柄 perl程序内部也支持管道,以便和操作系统进行交互。例如,将perl的输出在程序内部就输出给操作系统的命令,或者将操作系统的命令执行结果输出给perl程序内部。所以,perl有2种管道模式:句柄到管道、管道到句柄。 例阅读全文
posted @ 2018-09-01 15:57 骏马金龙 阅读(10) 评论(0) 编辑
摘要: 文件句柄 文件句柄用来对应要操作的文件系统中的文件,这么说不太严谨,但比较容易理解。首先为要打开的文件绑定文件句柄(称为打开文件句柄),然后在后续的操作中都通过文件句柄来操作对应的文件,最后关闭文件句柄。 如不理解文件句柄的概念,可将文件句柄看作Linux中文件描述符的概念。例如特殊的STDIN、S阅读全文
posted @ 2018-09-01 00:23 骏马金龙 阅读(28) 评论(0) 编辑
摘要: 对应的官方手册:http://perldoc.perl.org/perlvar.html Variables related to filehandles 默认情况下: :输入行的分隔符以换行符为单位,可以使用 指定 :print输出行的分隔符为undef,可以使用 指定,例如指定换行符"\n" :阅读全文
posted @ 2018-08-31 22:05 骏马金龙 阅读(23) 评论(0) 编辑
摘要: print、printf和say都可以输出信息。print和say类似,print不自带换行符,say自带换行符,但要使用say,必须写use语句 ,printf像C语言的printf一样,可以定制输出格式,不过我这perl似乎不支持printf,一用就报错,不知道为什么。它们有返回值:如果输出成功阅读全文
posted @ 2018-08-29 22:59 骏马金龙 阅读(21) 评论(0) 编辑
摘要: perl将perl命令行的参数列表放进数组ARGV(@ARGV)中。既然是数组,就可以访问($ARGV[n])、遍历,甚至修改数组元素 ARGV数组索引从0开始计算,索引0位从脚本名(perl程序名)之后的参数开始计算,即使这个参数是perl的选项 默认,这些命令行参数是perl程序的数据输入源,也阅读全文
posted @ 2018-08-29 21:38 骏马金龙 阅读(65) 评论(0) 编辑
摘要: 自增和自减 perl也支持数值类型的自增和自减操作。 如果自增(++)和自减( )符号放在数值的前面,则先增减,再返回; 如果自增(++)和自减( )符号放在数值的后面,则先返回,再增减; 如果自增、自减操作是独立的一句表达式,则自增、自减符号放在前面或后面都是等价的;阅读全文
posted @ 2018-08-26 10:57 骏马金龙 阅读(33) 评论(0) 编辑
摘要: hash类型 hash类型也称为字典、关联数组、映射(map)等等,其实它们都是同一种东西:键值对。每一个Key对应一个Value。 hash会将key/value散列后,按序放进hash桶。 散列后的顺序和存放数据的顺序无关 hash类型的key只能是字符串,value可以是字符串、数值、unde阅读全文
posted @ 2018-08-23 17:23 骏马金龙 阅读(26) 评论(0) 编辑
摘要: die和warn die可以在出现错误的时候停止程序,并给出消息。默认会输出出错的程序名称和出错行号 warn函数和die函数类似,但和die的区别是不会终止程序 die和warn的参数末尾如果给了 ,将不会输出出错的程序名称和出错的程序行号 可以自动探测操作系统层面上的错误并停止程序 例如,下面打阅读全文
posted @ 2018-08-22 22:01 骏马金龙 阅读(45) 评论(0) 编辑
摘要: 子程序(subroutine) perl中的子程序其实就是自定义函数。它使用 关键字开头,表示声明一个子程序 子程序名称有独立的名称空间,不会和其它名称冲突 Perl中的 子程序中可以定义、引用、修改全局变量 ,这和几乎所有的语言都不同。当然,也可以定义局部变量 perl中使用 的方式调用SUB_N阅读全文
posted @ 2018-08-21 16:47 骏马金龙 阅读(32) 评论(0) 编辑
摘要: " Perl书籍下载 " 密码:kkqx Perl语言入门 本部分是《Perl语言入门 第六版》(英文书名:Learning Perl)的学习笔记,这本书是Perl家族的"小羊驼"书籍。我个人学习这本书的感觉,如果有shell基础,perl入门挺容易的。 这部分文章是我学习这本书时的总结和稍微的整理阅读全文
posted @ 2018-08-21 16:32 骏马金龙 阅读(223) 评论(0) 编辑
摘要: 因为是比较凌乱的用法规则收集,所以能看懂则看,不能看懂也无所谓。以后也会遇到。 perl脚本第一行使用 。perl的后缀名一般为".plx"或".pl",运行时使用 即可 例如,1.plx内容如下: 执行该脚本: 注释。perl只支持" "注释,所以只支持单行注释、行内到结尾注释 perl脚本中,除阅读全文
posted @ 2018-08-21 16:16 骏马金龙 阅读(55) 评论(0) 编辑
摘要: perl中的上下文 在perl中,很多地方会切换上下文。所谓上下文,它的 重点在于同一个表达式出现在不同地方,得到的结果不同 。换句话说,同一个表达式,它表达的值不是固定的。这就像是同一个单词,在不同语境下的意思不同。 例如,运算操作符决定数值是一个数字还是一个字符串。 中的2和3都是数值,因为操作阅读全文
posted @ 2018-08-21 16:08 骏马金龙 阅读(38) 评论(0) 编辑
摘要: 列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表。 列表中的元素可以是字符串、数值、undef或它们的混合。 列表中的字符串元素需要使用引号包围。 空列表是括号中什么都没有的列表, 空列表返回的是undef 。但是赋值给别人时,不会当作undef,而是什么都没有(见稍后的例子)阅读全文
posted @ 2018-08-21 16:06 骏马金龙 阅读(47) 评论(0) 编辑
摘要: undef和defined()函数 undef表示的像是数据库中的"null"。它表示空,啥也没有,是完全未定义的。这不等于字符串的空,不等于数值0,它是另一种类型。 在某些时候,perl程序本该报错的时候(如使用未赋值的变量,参数越界,读取文件时到了文件结尾eof),perl实际上不会报错,而是返阅读全文
posted @ 2018-08-21 16:04 骏马金龙 阅读(16) 评论(0) 编辑
摘要: 读取标准输入\ 读取到的结果中,如果没有意外,都会自带换行符。 例如,test.plx文件内容: 注意上面的else语句中, 后面没有加换行符,因为``自带换行符。 下面的命令,将等待输入和回车。如果直接回车,则if条件为真。 下面是和bash shell交互。 注意上面第二条语句中,heihei会阅读全文
posted @ 2018-08-21 15:58 骏马金龙 阅读(15) 评论(0) 编辑
摘要: 布尔值判断 如果是数字,0表示假,其它所有数字都是真。 如果是字符串,空字符串('')为假,其它所有字符串为假(有例外,见下一条)。 如果是字符串'0',perl是当作数值0来处理的,所以这是唯一的非空但为假的字符串。 如果既不是数字,也不是字符串,那么先转换为数字或字符串再做判断(也就是"unde阅读全文
posted @ 2018-08-21 15:57 骏马金龙 阅读(37) 评论(0) 编辑
摘要: 比较操作符 perl的比较操作符和bash完全相反。数值比较采用符号,字符串比较采用字母。 最后一个 cmp`用于比较两边的数值/字符串并返回状态码 1/0/1: 小于则返回 1 等于则返回0 大于则返回1 对于``,如果比较的双方有一方不是数值,该操作符将返回undef。 几个示例:阅读全文
posted @ 2018-08-21 15:56 骏马金龙 阅读(31) 评论(0) 编辑
摘要: 变量 在perl中,普通变量被称为"标量变量"(scalar),标量是指单个值的意思。还有非标量的数据,如数组、列表、hash等。标量变量和这种非标量的关系,类似于英语里面的单数和复数。 "$"开头表示变量,也同样引用变量,这和bash不一样。变量名区分大小写,允许中文字符作为变量名。 双目赋值: 阅读全文
posted @ 2018-08-21 15:55 骏马金龙 阅读(19) 评论(0) 编辑
摘要: 数值和字符串 数值 perl中以双精度(浮点数)方式保存和运算数值的方式 就算写的是整数,在内部也会转换成等效的浮点数类型保存。 但在perl内部,有些运算会将浮点数转换成整型进行,而且也有integer编译器可以强制编译成整型。 perl中整数的表示方式 有3种方式: 这里使用下划线(_)代替逗号阅读全文
posted @ 2018-08-21 15:53 骏马金龙 阅读(38) 评论(0) 编辑
摘要: 返回 "LVS系列文章:http://www.cnblogs.com/f ck need u/p/7576137.html"   加权调度算法是一种很常见的调度算法。如果只有两个后端,调度的顺序很容易,但是如果后端多于2个,可能就不像想象中那样的顺序进行调度。 所以,本文揭秘加权调度算法到阅读全文
posted @ 2018-08-16 22:49 骏马金龙 阅读(292) 评论(1) 编辑
摘要: 本文通过大量图片来分析和描述分库、分表以及数据库分区是怎样进行的。 1.sharding前的初始数据分布 在本文中,我打算用高考考生相关信息作为实验数据。请无视表的字段是否符合现实,也请无视表的设计是否符合范式。 3张表: 考生表,存放全国所有高考考生信息,假设34个省、(直辖)市、(自治区、特别行阅读全文
posted @ 2018-07-30 00:38 骏马金龙 阅读(717) 评论(0) 编辑