超凡魔力

君子善思,善假于物,而不物于物。

0%

本文转载自于网络,主要是对history的使用、来进行总结。通过history方便的找到以前执行过的命令,快速执行。也可以做审查。另外,通过history的记录,可以方便的学习别人的操作记录。

阅读全文 »

如何用shell来做一个命令行工具。最简单的,可能是判断用户的输入 $?,另外还有 getopt函数。本文收集了多个shell的命令行解析方式。

脚本首行的,set -o errexit不确定是什么作用。

阅读全文 »

pcntl中有关进程相关的知识。1、进程复制。2、进程运行的用户组、用户。3、设置进程运行时的用户组、用户。4、等待进程结束pcntl_wait。5、信号注册与触发。6、信号处理pcntl_signal_dispatch。7、设置session id。使进程脱离终端。posix_setsid。8、守护进程,复制一次、设置会话组长、再复制一次。9、信号可以用,但是想做及时性的东西,好像信号,又做不到。

上面所有的,基本上都在posix跟pcntl两个扩展中。另外,重点讲一些与wokerman有关的东西。workerman的主要的功能:1、转化为守护进程。2、主进程对子进程的监控以及对信号的监听。3、关闭STDOUT等,改为写文件。4、子进程使用Libevent等,实现对socket的读写监听。5、同时,子进程也会监听主进程发号施令,并退出进程或重启进程。6、除此之外,posix、pcntl中一些常用的函数使用,设置进程title、设置运行的group、userid等等。7、统计功能,stauts跟connections,(主进程发信号,子进程将收集的信息写文件,主进程汇报),这一部分功能也很复杂。8、命令解析功能,对旧进程的控制,提供start、reload等命令(如nginx命令)。

阅读全文 »

在以前做项目的时候,有接触到websql内容。打开谷歌浏览器的调试工具,在Application下方,左侧的工具栏内,可以看到Storage有5项,cookie、localStorage、SessionStorage、WebSQL、IndexedDB。这些都都可以做前端的缓存使用,即,及时页面刷新并重新加载,还能从缓存中读到之前的旧数据。

在这些地方,如果要保存数据,建议保存非敏感型的数据。前端可以用underscope来处理数据,但是可以利用WebSQL提供的功能,使用sql来完成一些计算任务。下面简单的开个头,以后有时间再续。

阅读全文 »

php中闭包的使用,需要手动声明要引用的外层函数内的变量,而且还要指定是否是引用的形式,如:use(&$data)。这跟js的闭包有区别。js中,直接就可以引用外层的变量,而且是以引用的形式。区别在于变量的声名:php,变量不需要声明,而且变量的作用域并不会扩散到全局作用域,如果需要使用全局的变量,则需要刻意的指明global $data。而js,则相反,如果想要变量不扩散到全局作用域,则需要用var来声明。而js本身对复杂变量,是引用形式的。

遇到这种困惑,是因为在chunk的callback方法中无法改变外层的变量,故记录本文。

阅读全文 »

某个系统用漏洞工具扫描后,报了好几个问题。然后从网上逐一搜到对应的答案。总体来说,就是设置一下nginx的响应头、修改php.ini的默认安全配置等。故简单记录一下。

阅读全文 »

使用Nodejs搭建一个Websocket的Server,然后浏览器端,使用ws协议,根据推送过来的消息,来触发页面更新。

想法源自于自己使用php搭建的一个简单的签到后端,某按键软件执行过程中,将执行过程中的日志发送到php的签到.php,然后签到php将数据入库,并根据发送过来的内容,如”任务结束”,决定是否要发送钉钉推送消息。而同时,为了展示消息,采用easyui的表格展示。由于每次更新数据,都需要自己手动来刷新视图。按之前做过的业务,便采用了js的定时器,来定时刷新视图。我们知道,定时器的更新效率,比较低,而且还存在一定的延时。于是乎,某天我有时间了,便想采用websocket来优化更新的机制。便有了本文探索的内容。(在以前的业务中,也有采用过mqtt来更新)

阅读全文 »

顺序执行结构,最大特点就是按顺序执行。但是,合理安排代码执行的顺序,能使代码更容易理解。

其他,待添加。

阅读全文 »

wile、for

找到最小可重复的单元。合理的调整重复单元各个操作的顺序,使其更符合逻辑。如果实在没有办法必要,提前手写第一圈循环。或者手写最后一圈循环。

阅读全文 »