骏马金龙

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!
我本问道人,道心不坚,必将与道无缘!

摘要:这是正则表达式从入门学习到深入掌握各种技巧的教程系列,使用了不同语言描述,但对于正则理念来说是完全通用的。最后还差一篇正则性能优化的文章,有机会再补上。 1. "基础正则表达式" 2. "Perl正则表达式超详细教程" 3. "递归正则表达式详细教程(Ruby描述)" 4. "pcre和正则表达式的 阅读全文
posted @ 2019-09-21 10:15 骏马金龙 阅读 (114) 评论 (0) 编辑
摘要:"安装Ruby、多版本Ruby共存、Ruby安装慢问题" "Ruby语言的一些杂项" "Ruby中的常量:引号、%符号和heredoc" "Ruby中的数值" "Ruby字符串(1):String基本用法" "Ruby字符串(2):String方法详细整理" "Ruby数组(1):基本用法" "Ru 阅读全文
posted @ 2019-05-03 16:36 骏马金龙 阅读 (774) 评论 (0) 编辑
摘要:前面带有 符号的是 待补充文章 ,有些可能在随后会跟着补上,有些可能有缘再补😄。 Python语法基础 菜鸟一枚,错误在所难免,还望发现错误后能够提出 。 . 1. 基础数据类型 "数值类型" "布尔类型和逻辑运算" "等值和大小比较" "字符串" "字符串(string)方法整理" "字符串格式 阅读全文
posted @ 2018-10-22 20:41 骏马金龙 阅读 (10278) 评论 (5) 编辑
摘要:这个系列写的不是很好,未来重构。 Go基础系列 |Go基础|Go基础| | | | | "1.Go简介" | "2.Go数据结构struct" | | "3.构建Go程序" | "4.import导包和初始化阶段" | | "5.array" | "6.Slice详解" | | "7.map" | 阅读全文
posted @ 2018-10-22 20:24 骏马金龙 阅读 (7746) 评论 (0) 编辑
摘要:0.Perl书籍推荐 " Perl书籍下载 " 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书。 入门级别1 :《Perl语言入门》即小骆驼 入门级别2 :《Intermediate Perl》即羊驼 入门后复习 :《beginning Perl》 系统性学习和进阶 阅读全文
posted @ 2018-08-21 16:32 骏马金龙 阅读 (3779) 评论 (0) 编辑
摘要:今天下午突然看到: 原来,我已经写了300多篇博客了。现在想想,我收获了很多,也失去了很多。现在我想写一篇文章,感想类的文章,也是这么久以来、这么多文章中唯一的一篇非技术类文章。 开写之前,先把我写的3大系列文章的目录贴出来,目前为止几乎所有文章都在这3个系列里。 "Linux & shell基础系 阅读全文
posted @ 2018-07-16 00:42 骏马金龙 阅读 (13782) 评论 (128) 编辑
摘要:以下是本系列文章的大纲,此页博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接。 如果觉得文章不错,还请帮忙点下"推荐",各位的支持,能激发和鼓励我更大的写作热情。在此先行谢过! 为了让文章列表更紧凑,字体比较小。如果看着不太爽,请缩放页面150% 1.MySQL/MariaDB语法 阅读全文
posted @ 2017-09-24 09:41 骏马金龙 阅读 (19633) 评论 (4) 编辑
摘要:博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接。 为了让文章列表更紧凑,字体比较小。如果看着不太爽,请缩放页面150% 还请随手点下"推荐",各位的支持和肯定能激发和鼓励我更强烈的写作热情。谢谢! 推荐书籍:《大型网站技术架构:核心原理与案例分析》。最直接的感受是:这是一本好书, 阅读全文
posted @ 2017-09-22 17:45 骏马金龙 阅读 (27399) 评论 (15) 编辑
摘要:本人已经此系列的sed文章整理到pdf中,欢迎下载:玩透sed:探究sed原理 sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中的疑难杂症 说明: 阅读全文
posted @ 2017-09-09 21:54 骏马金龙 阅读 (2647) 评论 (1) 编辑
摘要:我将尽量写出整个体系的内容,初学的朋友可以视之为学习资料,如同看书一样。虽然网上培训视频比较好入门,大方向上的知识点也还算完整,我个人也是这么入门的(基本上看完了某哥和某孩共两整期的视频课程),但看完后入门了,在回炉深造的时候,却发现这些视频课程缺少很多内容,甚至说,看完视频会遗漏很多非常重要的知识 阅读全文
posted @ 2017-06-19 13:52 骏马金龙 阅读 (77012) 评论 (43) 编辑
摘要:openssl系列篇(翻译整理man文档以及用法示例) 证书请求、证书颁发、CA相关 阅读全文
posted @ 2016-11-22 21:09 骏马金龙 阅读 (972) 评论 (3) 编辑
摘要:"点我查看秘籍连载" CPU的归属:Idle进程 操作系统并不总是繁忙。例如个人PC上任务比较轻,多数时候都无法充分利用CPU,导致CPU处于空闲状态。但CPU既然通电了,它就得运行,那么在它没有任务需要执行的时候,CPU在干嘛呢? Idle进程的工作非常的轻松,就是累积CPU空闲时间,CPU工作在 阅读全文
posted @ 2019-10-13 21:23 骏马金龙 阅读 (21) 评论 (0) 编辑
摘要:"点我查看秘籍连载" 操作系统的服务端口:系统调用 用户进程工作在用户态,它是受限的,很多涉及到硬件的操作都无法执行,但是它们又想要取得结果,就只能请求工作在内核态的操作系统帮助完成这些操作,并将操作结果交给用户进程。 系统调用 (system call)就是操作系统提供给用户进程请求操作系统做一些 阅读全文
posted @ 2019-10-11 13:08 骏马金龙 阅读 (43) 评论 (0) 编辑
摘要:"点我查看秘籍连载" 回到操作系统:中断 要想在任何需要的时候回到操作系统,这相当于是改变了CPU的正常执行流程,所以一个非常熟悉的字眼—— 中断 (Interrupt)就出现了。通过中断,可以保证回到操作系统,从而将CPU的控制权交给操作系统。 中断的字面意思就是打断正常执行流程,但是注意,它表示 阅读全文
posted @ 2019-10-10 08:26 骏马金龙 阅读 (44) 评论 (0) 编辑
摘要:"点我查看秘籍连载" 限制进程:内核态和用户态 进程可分为两种类型。一是操作系统自身运行时的内核类进程,也称为 操作系统进程 。另一种即非内核类进程,不是操作系统自身的进程,而是想要实现某些功能,用户自己去启动的程序产生的进程,也称为 用户类进程或用户进程 。 操作系统自身也是一个程序,它启动之后也 阅读全文
posted @ 2019-10-09 09:14 骏马金龙 阅读 (61) 评论 (0) 编辑
摘要:"点我查看秘籍连载" 假象:“并行”运行多个进程 现代操作系统都支持多任务同时执行。在这里,操作系统对我们用户“营造了一种假象”,让CPU看上去是用不完的,能够不断地添加新的程序使它们同时运行。 但每核CPU在某一时刻都只能执行一个进程。使用操作系统的人是不会去关注CPU是单核还是多核的,每个人都希 阅读全文
posted @ 2019-10-08 08:41 骏马金龙 阅读 (285) 评论 (2) 编辑
摘要:"点我查看秘籍连载" 毋庸置疑,操作系统(Operating System,OS)是一个非常大的概念,涉及到的内容非常非常多,在探讨它的时候,往往会将操作系统置于一个比较底层的角度去对待,这也使得多数人对OS是“闻之丧胆”,对OS相关的资料或概念也是望而却步,这也是我曾经亲身经历的过程。 君不见那些 阅读全文
posted @ 2019-09-25 13:41 骏马金龙 阅读 (164) 评论 (4) 编辑
摘要:修改命令提示符颜色 修改命令提示符的话,只需修改PS1环境变量即可。 效果如图: 修改命令输入的颜色 修改命令输入的颜色,思路是不关闭PS1的颜色,然后在每次敲下回车键执行命令的时候自动插入颜色终止符。这需要借助trap捕获DEBUG信号来实现。 如果要写入shell配置文件,建议写到 ,而不要写入 阅读全文
posted @ 2019-09-21 12:45 骏马金龙 阅读 (67) 评论 (0) 编辑
摘要:这是正则表达式从入门学习到深入掌握各种技巧的教程系列,使用了不同语言描述,但对于正则理念来说是完全通用的。最后还差一篇正则性能优化的文章,有机会再补上。 1. "基础正则表达式" 2. "Perl正则表达式超详细教程" 3. "递归正则表达式详细教程(Ruby描述)" 4. "pcre和正则表达式的 阅读全文
posted @ 2019-09-21 10:15 骏马金龙 阅读 (114) 评论 (0) 编辑
摘要:想要管理多种具体的东西,那么需要遵守每种东西的规范。如果想要提供一种通用模式来对这些具体的东西统一管理,需要使用一种古老的技术:抽象。 抽象是将多种具体的东西(管理时需要遵守的规范)的共同点抽取出来,放入到更高一层的抽象层。在抽象层不定义或少量定义具体的规范细则,而是让下层更具体的东西遵守抽象出来的 阅读全文
posted @ 2019-09-21 09:43 骏马金龙 阅读 (83) 评论 (2) 编辑
摘要:一般来说,递归的正则表达式用来匹配任意嵌套层次的结构或左右对称的结构。例如匹配: 递归正则在正则表达式里算是比较灵活的部分,换句话说就是可能会比较难。下面这个正则表达式是在网上流传的非常广泛的递归正则的示例,它用来匹配嵌套任意次数的括号,括号内可以有其它字符,比如可以匹配 、`(abc(bc(def 阅读全文
posted @ 2019-08-13 10:55 骏马金龙 阅读 (312) 评论 (0) 编辑
摘要:单机上的系统总线 1. 总线(bus)是一种 通信系统 ,用于携带各种类型的数据, 在各组件之间传递数据 (可以理解为快递员。按照bus的字面意思理解更好,公共汽车,公共的携带数据的交通工具)。 2. 在大概念上分三种总线:系统总线(前端总线)、内部总线和外部总线。 系统总线:计算机内部主要设备之间 阅读全文
posted @ 2019-07-13 20:49 骏马金龙 阅读 (295) 评论 (0) 编辑
摘要:理解并发、并行的例子 先举例子来理解这2个概念的区别。 老师让两个同学去办公室谈话。如果这两同学(进程)是并列跨过办公室门(CPU)的,那么就是并行。如果同学A先进同学B后进入(或者先B后A),或者两人并列同时进入,但是在办公室外的路人甲(用户)看来,同学A和同学B同时都在办公室内,这是并发。 其实 阅读全文
posted @ 2019-07-10 01:43 骏马金龙 阅读 (1149) 评论 (5) 编辑
摘要:关于CPU和程序的执行 CPU是计算机的大脑。 1. 程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程 。 当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取下一个指令 阅读全文
posted @ 2019-07-06 09:33 骏马金龙 阅读 (4796) 评论 (13) 编辑
摘要:生成指定长度是随机数 bash 8位纯数字的随机数 tr cd '0 9' 阅读全文
posted @ 2019-06-21 09:01 骏马金龙 阅读 (249) 评论 (0) 编辑
摘要:Ruby中可以使用一个星号 和两个星号 完成一些打包、解包操作,它们称为splat操作符: 一个星号:以数组为依据进行打包解包( "参考文章" ) 两个星号:以hash为依据进行打包解包( "参考文章" ) 两个星号的splat场景很少见,如有必要可参考上面列出的参考文章。 当splat操作符后面跟 阅读全文
posted @ 2019-05-27 14:00 骏马金龙 阅读 (50) 评论 (0) 编辑
摘要:String方法整理 "官方手册" 类方法 new 指定创建什么编码的字符串,即new_str是什么编码的。 指定创建字符串对象时预先分配好的buffer大小。如果以后要扩容该字符串,就不需要再临时动态分配内存。对于后续可能需要频繁扩展该字符串的情况,可以提升一些性能。 例如: try_conver 阅读全文
posted @ 2019-05-04 15:02 骏马金龙 阅读 (408) 评论 (0) 编辑
摘要:String字符串 字符串由String类提供,除了直接使用单双引号或其它字面量创建字符串,也可以使用String.new()方法来创建。 Ruby中的 字符串是可变对象 。 字符串的连接 直接连接即可: 单双引号 这和Perl一样,和Shell也类似。单引号是强引用,双引号是弱引用。 双引号的一个 阅读全文
posted @ 2019-05-03 17:47 骏马金龙 阅读 (109) 评论 (0) 编辑
摘要:数值类型 Ruby中所有数值都是Numeric类的子类对象, 数值都是不可变对象 。 数值类型的继承关系如下: Integer是整数,Float是浮点数类型,Rational是分数。 对于整数,要么是Fixnum,要么是Bignum:Fixnum是比较小整数的类型(31个二进制位),Bignum是较 阅读全文
posted @ 2019-05-03 16:45 骏马金龙 阅读 (50) 评论 (0) 编辑
摘要:数值字面量 没什么好说的,唯一需要说明的是分数字面量:数值后加上一个后缀字母 表示分数字面量。 引号 引号和Perl中的引号类似。 例如,单引号不解释变量内插和反斜线序列等,双引号解释变量内插和反斜线序列等,反引号用于执行对应的命令。此外,反引号中可以进行变量内插,也就是说反引号中字符的会按照双引号 阅读全文
posted @ 2019-05-03 16:43 骏马金龙 阅读 (63) 评论 (0) 编辑
摘要:Ruby中设计了很多种比较方式,所有对象都能进行 这几种比较。此外,当实现了 =、 、between?`这几个比较方法。 这些比较方法的定义位置和意义分别如下。 在BasicObject中定义了 : :比较内容是否相同,更多时候是描述两者是否相等,比如 的内容是不同的,但是相等 :和 是相反的 :比 阅读全文
posted @ 2019-05-03 16:42 骏马金龙 阅读 (82) 评论 (0) 编辑
摘要:Ruby是纯正血统的面向对象语言,所有的一切,一切的一切都是对象 Ruby里块(语句块)的特性非常重要,这个优美的特性贯穿整个Ruby Ruby里模块和类的概念一样重要,模块也是Ruby里的一个非常优美的特性 变量命名惯例 局部变量、方法参数、方法的名称都使用小写字母开头 有时候变量、方法以下划线开 阅读全文
posted @ 2019-05-03 16:38 骏马金龙 阅读 (64) 评论 (0) 编辑
摘要:"安装Ruby、多版本Ruby共存、Ruby安装慢问题" "Ruby语言的一些杂项" "Ruby中的常量:引号、%符号和heredoc" "Ruby中的数值" "Ruby字符串(1):String基本用法" "Ruby字符串(2):String方法详细整理" "Ruby数组(1):基本用法" "Ru 阅读全文
posted @ 2019-05-03 16:36 骏马金龙 阅读 (774) 评论 (0) 编辑
摘要:rbenv rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围 global版:全局,没有shell和local版时使用global版 shell版:当前终端,只针对当前所在终端 查找优先级为 。 1.安装rbenv 2.安装r 阅读全文
posted @ 2019-05-03 16:31 骏马金龙 阅读 (161) 评论 (0) 编辑
摘要:引自我在知乎上的回答: "进程 线程 协程 例程 过程 的区别是什么? 骏马金龙的回答 知乎" 首先解释下程序、进程、上下文切换和线程。然后再解释协程、例程、过程。 程序 程序 :源代码堆起来的东西。相当于一个一动不动没有生命的机器人。 虽然是没有生命的机器人,但是它被设计后就表示有了硬件,它的硬件 阅读全文
posted @ 2019-05-02 17:02 骏马金龙 阅读 (563) 评论 (0) 编辑
摘要:原本是用perl写了一个通过给定的时间范围来筛选一个比较大的日志文件。但是测试发现筛选130W行日志需要2分多钟,对其中几个低效率函数单独进行了效率测试,发现构造100W个时间对象所花时间也是个大户。 于是,特地比较了几种语言构造100W个时间对象(或时间结构)的性能。以下是结论: Perl(Tim 阅读全文
posted @ 2019-04-30 20:57 骏马金龙 阅读 (162) 评论 (0) 编辑
摘要:定义好了一个可以输出带颜色行号以及行数据的函数print_with_line_num,f()是测试函数。在f()函数中,读取文件并输出读取的每一行数据,但根据参数选项决定是普通输出行还是同时输出带颜色行号的行数据。 这可以当作是偏函数、闭包、作用域的一个用法示例。 脚本内容如下: 下面是测试效果: 阅读全文
posted @ 2019-04-29 17:33 骏马金龙 阅读 (59) 评论 (0) 编辑
摘要:Enumerator迭代 Mix in Enumerator获得的迭代方法 : "each_cons" : "each_slice" : "each_with_index" : "with_index" : "each_with_object" : "each_entry" : each_cons( 阅读全文
posted @ 2019-04-15 11:31 骏马金龙 阅读 (78) 评论 (0) 编辑
摘要:数组 Ruby中的数组是一个容器,数组中的每个元素都是 一个对象的引用 。 注意,Array类中包含了Enumerable模块,所以Enumerable中的方法也都能使用,例如Enumerable中的reduce()方法也是非常好用的方法。 创建数组 字面常量创建 ruby 1.使用[xxx]方式创 阅读全文
posted @ 2019-04-15 11:27 骏马金龙 阅读 (93) 评论 (0) 编辑
摘要:数组方法整理 方法列表: "all()、any()、none()和one()" :测试数组中的所有或部分元素是否满足给定条件。条件可以是语句块中决定,也可以是参数决定 "append()" :等价于 "push()" "bsearch()" :二分法查找元素 "bsearch_index()" :二 阅读全文
posted @ 2019-04-15 11:21 骏马金龙 阅读 (450) 评论 (0) 编辑
摘要:在此处只给出find的基本用法示例,都是平时我个人非常常用的搜索功能。如果有不理解的部分,则看后面的 "find运行机制详解" 对于理论的说明,也建议在看完这些基本示例后阅读一遍理论说明,它是本人翻译自find的man文档并加上了个人的理解。另外,在该理论说明结束后,还有find深入用法示例和分析。 阅读全文
posted @ 2019-04-14 13:09 骏马金龙 阅读 (1614) 评论 (2) 编辑
摘要:MariaDB官方手册 翻译:create database语句(已提交到MariaDB官方手册) 翻译:rename table语句(已提交到MariaDB官方手册) 翻译:alter table语句(已提交到MariaDB官方手册) 翻译:标识限定符(已提交到MariaDB官方手册) 翻译:标识 阅读全文
posted @ 2019-04-12 19:00 骏马金龙 阅读 (272) 评论 (0) 编辑
摘要:包括 和`to_str to_i to_int to_a to_ary to_h to_hash to_x to_xxx`。 那么, 和`to_xxx to_x to_xxx`。 解释 使用鸭子模型来解释比较容易点。 只要像鸭子,就能当成鸭子,这就是 。只有它真的是鸭子,才能当成鸭子,这就是 。 以 阅读全文
posted @ 2019-04-12 13:34 骏马金龙 阅读 (498) 评论 (0) 编辑
摘要:1.C中数组和指针的关系 对于任意类型的数组arr,对于同类型的指针类型parr(确切一点,可以假设类型为int,即 )。它们之间有如下"内幕": 1. 数组的名称arr本身就是一个指针,这个指针指向数组的第一个元素 2.因为名称arr本身是指针,所以可以直接赋值给同类型的指针parr: ,这使得 阅读全文
posted @ 2019-03-24 21:05 骏马金龙 阅读 (317) 评论 (1) 编辑
摘要:概念 僵尸进程 :当子进程退出时,父进程还没有(使用wait或waitpid)接收其退出状态时,子进程就成了僵尸进程 孤儿进程 :当子进程还在运行时,父进程先退出了,子进程就会成为孤儿进程被pid=1的init/systemd进程收养 需要说明的是,僵尸进程的父进程死掉后,僵尸进程也会被pid=1的 阅读全文
posted @ 2019-03-11 01:32 骏马金龙 阅读 (295) 评论 (0) 编辑
摘要:要生成大量随机大小的文件,最简单的方法是for循环N次。 例如,生成100W个0 16K大小的小文件(尝试时请改小一点数量,不然时间要很久): tmp_dir=/tmp/temp for i in {1..1000000};do dd if=/dev/zero of=$tmp_dir/${i}.lo 阅读全文
posted @ 2019-03-10 12:59 骏马金龙 阅读 (670) 评论 (0) 编辑
摘要:获取主机名、用户、组、网络信息相关函数 首先是获取主机名的方式,Perl提供了 模块,可以查询当前的主机名: Perl中提供了下面一大堆的内置函数用来获取用户、组、网络相关的信息。这些perl函数在C中也都有对应的函数。 从动作上分为3类: getXXX:获取信息操作 setXXX:设置操作 end 阅读全文
posted @ 2019-03-06 21:26 骏马金龙 阅读 (113) 评论 (0) 编辑
摘要:SSH系列文章 : "SSH基础:SSH和SSH服务" "SSH转发代理:ssh agent用法详解" "SSH隧道:端口转发功能详解" 使用ssh agent之前 使用ssh公钥认证的方式可以免去ssh客户端(如ssh命令、xshell等)连接远端主机sshd时需要输入对方用户密码的问题。 但如果 阅读全文
posted @ 2019-03-06 17:16 骏马金龙 阅读 (1613) 评论 (0) 编辑
摘要:SSH系列文章 : "SSH基础:SSH和SSH服务" "SSH转发代理:ssh agent用法详解" "SSH隧道:端口转发功能详解" 1.1 ssh安全隧道(一):本地端口转发 如下图,假如host3和host1、host2都同互相通信,但是host1和host2之间不能通信,如何从host1连 阅读全文
posted @ 2019-03-06 13:55 骏马金龙 阅读 (1251) 评论 (0) 编辑
摘要:入门推荐书籍1: 《计算机的心智:操作系统之哲学原理》 (建议看第一版)。要阅读这本书,除了几个概念(比较常见的是"中断"),完全不需要任何基础(没错,不需要C和任何语言的知识),看故事一样就可以将操作系统的进程、线程、内存、IO、多核全部有个了解。当然,这本书只能浅层次、全面地了解操作系统,适合入 阅读全文
posted @ 2019-03-06 09:57 骏马金龙 阅读 (2657) 评论 (0) 编辑
摘要:sysopen() open()和sysopen()都打开文件句柄,open()是比较高层次的打开文件句柄,sysopen()相对要底层一点。但 它们打开的文件句柄并没有区别 ,只不过sysopen()有一些自己的特性:可以使用几个open()没有的flag,可以指定文件被创建时的权限等。 一定要注 阅读全文
posted @ 2019-03-02 09:42 骏马金龙 阅读 (102) 评论 (0) 编辑