Blog icon indicating copy to clipboard operation
Blog copied to clipboard

h2O's Blog

Results 100 Blog issues
Sort by recently updated
recently updated
newest added

Bash 常用快捷键 =============== ### 移动 - ctrl+b:前移一个字符(backward) - ctrl+f:后移一个字符(forward) - alt+b :前移一个单词 - alt+f :后移一个单词 - ctrl+a:移动到行首(a是首字母) - ctrl+e:移动到行尾(end) - ctrl+xx:行首到当前光标替换 ### 编辑 - alt+. :粘贴最后一次命令最后的参数 - alt+d :删除当前光标到临近右边单词开始(delete) -...

Linux

Linux命令选项a-z字母通常代表的含义 ================================= `-a` 所有项(all)(不带参数)。如果是GNU风格,则为--all选项。 添加(append)。 `-b` 缓冲区(buffer)大小或块(block)大小(带参数)。 批处理(batch)。如果程序是自然交互的,-b选项可用于禁用提示或设置有其他适当选项来接受文件的输入而不是操作员的操作。 `-c` 命令(带参数)。如果程序是一个通常从标准输入接受命令的解析器,那么程序期望-c参数选项会作为单行输入传递给该程序。 检查(check)(不带参数)。检查命令的文件参数是否正确,但并不真正执行正常的过程。 `-d` 调试(debug)(带或不带参数)。设置调试信息级别。 -d偶尔具有“删除(delete)”或“目录(directory)”的含义。 `-D` 定义(define)(带参数)。在解释器,编译器或(特别是)类似宏处理的应用程序中给某个符号赋值。C编译器的宏处理对-D的用法就是如此。 `-e` 执行(execute)(带参数)。包装器程序或可作为包装器使用的程序通常允许-e对其交付给控制权的程序进行设置。 编辑(edit)。能以只读模式或编辑模式打开某项资源的程序通常用-e规定以编辑模式打开资源。 -e偶尔具有“排除”或“表达”的含义。 `-f` 文件(file)(带参数)。经常要带参数使用,为需要随机访问输入或输出的程序指定输入文件。 强制(force)(典型情况下不带参数)。强制执行通常在某种条件下施行的操作。 `-h` 表头(header)(通常不带参数)。启用,禁止或修改程序生成报表的表头。 帮助(help)。 `-i` 初始化(initialize)(通常不带参数)。把和程序关联的关键资源或数据库设置成初值或空值。 交互(interactive)(通常不带参数)。强制那些通常不查询确认的程序确认查询。 `-I`...

Linux

README文件内容 ============== README文件应该短小精简容易阅读。确保只是一份介绍,而不是长篇类牍。在README文件中应该包括如下的良好内容: 1. 项目的简短描述。 2. 指向项目站点的链接(如果存在)。 3. 开发者变异环境的注意事项以及潜在的移植性问题。 4. 描述重要文件和子目录的路标。 5. 编译及安装的指令或者指向同样内容的文件(通常是INSTALL文件)。 6. 维护者光荣榜列表或者指向同样内容的文件(通常是CREDITS文件)。 7. 项目的最近新闻或者指向同样内容的文件(通常是NEWS文件)。 8. 项目邮件列表地址。 摘录:《Unix编程艺术》`第19章-开放源码:在Unix新社区中编程`。

Linux

各种开源许可证 ============== MIT或者X Consortium许可证 ------------------------- 最宽松的自由软件许可证是这样的,授予无限权利的拷贝,使用,修改和对修改拷贝的再发行,只要在所有修改的版本中保留版权和许可证条款。接受这种许可证就意味着放弃控告维护者的权利。 经典BSD许可证 ------------- 比上面稍严一点的许可证,授予无限权利的拷贝,使用,修改以及对修改拷贝的再发行,只要在所有修改的版本中保留版权和许可证条款,并且在广告和软件包相关的文档中包含致谢。受让者也必须放弃控告维护者的权利。 BSD许可证的次要变种更改了版权所有人和删除了对广告的要求(实际等价于MIT许可证),也并非不常见。注意在1999年年中,加州大学技术转让办公室废除了BSD许可证中的广告条款。所以BSD软件中的许可证的限制已经更宽松了。如果选择BSD方式,我们强烈推荐使用新式(没有广告条款的)而非旧式许可证。广告条款被废除了,因为这导致确定授权广告构成时,在法律和过程上的极端复杂性。 Artistic许可证 -------------- 下一个稍严的许可证授予无限的拷贝,使用和本地修改的权利。允许载发行修改后的二进制版本,但是限制修改源码的再发行以保护作者和自由软件社区的利益。 Artistic许可证为Perl而设计,广泛使用在Perl开发者社区,它就是此类许可证。它要求被修改的文件包含“显著声明”,表示已经被修改过。也要求发布更改者让更改可以自由获取,并努力将其传播回自由软件社区。 通用公共许可证 -------------- GNU通用公共许可证(及其派生,Library或 “less”GPL)是最广泛使用的单一自由软件许可证。如同Artistic许可证一样,若修改后的文件带有“显著生命”则允许修改源码再发布。 GPL要求,如果程序包含了任何处于GPL涵盖下的部分,则整个程序都处于GPL涵盖下。 Mozilla公共许可证 ----------------- Mozilla公共许可证支持开源软件,但是可以链接闭源的模块和扩展。它要求发行的软件(被涵盖代码,Covered Code)仍然保持开源,但附加软件,如果通过良好定义的API来调用,允许闭源。 摘录:《Unix编程艺术》`第19章-开放源码:在Unix新社区中编程`。

Linux

微信小程序之https深坑 ============= 在开发微信小程序,会遇到各种各样的坑,毕竟刚上线,各种不成熟,所以,也只能踩了。 场景: > 在本地(PC端)开发工具可以请求(wx.request)到后台数据接口(https接口),但是在真机(手机端)预览,报: errMsg:"request: ssl hand shake error". 网上查了下,发现踩坑的人还不少。 首先是微信MP后台需要设置`request 合法域名`。 这个设置之后,ssl握手还是走不通。 后来,查阅需要认证的证书,并且需要同时支持 TLS1.0,TLS1.1,TLS1.2。 但是,在微信官网是说,`tls 仅支持 1.2 及以上版本`。 然后去了几个检测ssl证书站点,检测自家公司的证书,发现只有TLS1.2,https后台请求数据接口还是失败。 修改ssl配置,同时支持了TLS1.0 TLS1.1 TLS1.2 SSL2.0 SSl3.0 都支持了,还是不行。 最后老总催促,只能暂时去[第三方平台](https://wxapi.hotapp.cn/),做了个中转,先把程序运行起来。 这个坑,个人感觉是证书没有正确配置或安装导致的,跟安装的人反映了,却没有什么实质性改善,暂且搁置,用第三方先把程序跑起来吧。

Wechat

日常软件列表 ======= - awesome + terminator - fcitx + yunpinyin - vim + ranger - sublime - httpie - mycli - chromium + ss-qt5 + firefox + flash - hexchat...

Linux

Mysql主从复制 ============= 主从复制原理 ------------ `Master`:记录数据更改操作 > 启用binlog记录模式(二进制日志) > 允许Slave读取binlog日志 `Slave`:运行2个同步线程 > Slave_IO:负责连接Master,复制其binlog日志文件到本机的relay-log(中继)文件 > Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作 MySQL使用3个线程来执行复制功能,其中1个在主服务器上,另两个在从服务器上。 当发出`START SLAVE`时,从服务器创建一个I/O线程,以连接主服务并让主服务器发送二进制日志。主服务器创建一个线程将二进制日志中的内容发送到从服务器。 从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。 第三个线程是SQL线程,从服务器使用此线程读取中继日志并执行日志中包含的更新。 `SHOW PROCESSLIST`语句可以查询在主服务器上和从服务器上发生的关于复制的信息。 主从复制配置 ------------ 主从复制主要分为两种情况: 1. 主服务器还没有用户数据 2. 主服务器已经存在用户数据 >...

Mysql

最近倒腾了Arch Linux。记录一下安装过程。 #### dd镜像 #### 第一步,做启动盘,这里用 `dd` 命令来做。 ``` $ sudo umount /dev/sdX $ sudo dd if=/path/to/archlinux.iso of=/dev/sdX bs=4M && sync ``` 说明: > sdX就是你的u盘,可以用`lsblk`查看 > The `sync` bit is...

Linux
Arch

生活,是为了什么? ================= 活着,为了什么? 很多人,会说,为了更好的生活。 然而,如果现在就已经满足了,那么我们还需要努力地去拼搏么? 最近的一段时间,一直在反思着自己目前的现状,以及往后的一些打算。 发现,在之前一段的努力拼搏过去之后,开始感到疲惫,慢慢地开始懈怠。 也就是,常说的,待在了“舒适区”。 时常在想,这么苦地活着干嘛? 既然现在可以选择悠闲一点的生活,为什么还要强迫自己痛苦地去追寻更好地生活?! 或许,我们都应该懂点“知足常乐”。 如果,鸟儿不知道这片天空的辽阔,那么它就不会有遨游天下的梦想,待在这一偶,也就满足了。 或许,这样,它没有见识到其他地方的新奇,但也一样得到了自己需要的生活。 又或许,它知道的外面的世界很大,自己很努力地去追寻探索,处处遇到困难与挫折,但最终也是得到了自己想要的生活,因为它去经历了那些自己一直没有机会遇到的事情,虽然这个过程充满苦难。 如何选择?究其还是在于自己的本心。 每一个人,都有不同追求,不同的选择。 或许,朝问道 夕死可矣。 就是这个原因吧。

生活,日常

Vim小技巧 ========= 标记 ---- vim允许在文本中自定义标记。 > 命令`ma`指用a标记了当前的光标位置. 移动到标记a的命令是: > \`a,(反引号,跟~共用一个键盘) 需要注意的是,单引号`'a`也可以实现跳转,不同的是: > 单引号跳转到标记所在行的行首 > > 而反引号是直接跳到标记所在的行和列,精确到列的。 > 因此,在同一行多列之间跳转使用反引号是非常有用的。 历史命令 -------- 使用vim的都知道,`:q`是退出vim。 而很少人知道,`q:`是查看vim里使用的历史命令。 > 最有趣的是,你还可以在这个历史命令窗口修改命令,修改完成之后,按enter就可以执行了。

Vim