Posts

Showing posts from 2014

Linux清理磁盘cache

Linux下sync命令可以将脏数据flush入磁盘。如果想要将所有的缓存也清除,必须在sync之后执行

清除page cache
echo 1 > /proc/sys/vm/drop_caches

清除 dentries & inodes
echo 2 > /proc/sys/vm/drop_caches

同时清除page cache和dentries以及inodes
echo 3 > /proc/sys/vm/drop_caches

记得必须先执行sync不然脏数据的缓存是不会被清除的。

hash表取模技巧

在使用hash表的时候,由于hash表的size不可能无限大,我们必须将hash function求出来的index值映射到hash表的size范围内。一般情况下都是采取取模的形式index % size,但是modulus操作要进行除法运算,在数据量大的时候效率较低,这时候我们可以将size设置为2的某次方,这样只要将index & (size - 1)就可以求得模值,至于为什么是这样,原理很简单,我就不在此赘述了。

批量在文件头插入

最近在整理一套古董代码,古董代码很多头文件stdio.h stdlib.h string.h都没有显示的引用,在gcc上编译总是报错,但是要一个个文件去添加头文文件是件很繁琐的事情,有没有办法一次性把所有的文件都加上这些头文件的引用呢?

linux查看打开文件

lsof

bash $用法

$$ 当前bash进程号
$0 当前bash文件名
$? 上一指令的返回值
“$*”参数的内容,单字符串返回,中间以空格分开
“$@”参数内容,返回多个字符串。
$#参数的个数。

bash排除通配符

在bash中我要批量对某些文件做操作可以使用通配符(globbing),但是如果我想排除一些文件,对其他所有文件做操作,要怎么写呢?比如我要把除了sam以外的所有文件(夹)移到sam里面呢?

shellshock强势袭来

shelllock强势袭来,这次漏洞出在俺们最常用的Bash里,而且是从v1到v4潜伏了20多年,基本原理类似SQL注入,BASH会对环境变量值中函数定义后的字符串进行处理:

env X="() { :;} ; cmd" bash -c 'some cmd'

由于本人没有看过Bash的源码,对注入的机制了解不是很深入,根据搜集到的信息:上面的命令将空函数export给环境变量x。 bash内部会将定义成函数的环境变量以一种规范的字符串形式保存,当子bash执行的时候会将这个环境变量作为函数名,对这个函数定义的字符串进行求值,这时候跟在后面的那个命令也被执行了,通过这种方法骇客就可以注入任何他想要的东西。

Linux测试网络

Windows上一般用telnet来测试连接,在Linux上我们有个专门测试网络的工具NetCat(nc)。只要

nc host port

即可。

UE4引擎发布

unreal engine4 正式发布,公开c++源码,采用订阅方式,一个月只要19美元。不过唯一的缺憾是UE4将分享开发者4%的收益。

Canonical宣布ubuntu phone第一批合作伙伴

http://insights.ubuntu.com/news/canonical-announces-first-partners-to-ship-ubuntu-phones-around-the-globe/
魅族赫然在列!

随感

“江湖里卧虎藏龙,人心里何尝不是?刀剑里藏凶,人情里何尝不是?”世间的纷争皆源于人性的欲望,所以佛说放下,但是佛错了,压抑只会让欲望更强烈~

CentOS和RedHat好上了,咋办?

今天刚开Hacker News就看到CentOS和RedHat好上了的新闻!咋办呢?
有链接有真相: http://community.redhat.com/