标签归档:bash

批量在文件头插入

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

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执行的时候会将这个环境变量作为函数名,对这个函数定义的字符串进行求值,这时候跟在后面的那个命令也被执行了,通过这种方法骇客就可以注入任何他想要的东西。