:() { :|:&};: 解析
看了《千万千万不要运行的Linux命令》一文, 讲过一段千万不要在命令行执行的不知所云的符号:
:(){:|:&};:
其实这段脚本是无法直接执行的,它存着语法错误,修正如下:
:() { :|:&};:
它实际上定义并调用了一个Shell函数,这个函数会不停的在后台通过管道调用它自己,形成一个永远无法返回的递归,然后瞬间主机的资源就会被耗尽,不得不断电重启,至少我当时不得不断电重启电脑.
看了《千万千万不要运行的Linux命令》一文, 讲过一段千万不要在命令行执行的不知所云的符号:
:(){:|:&};:
其实这段脚本是无法直接执行的,它存着语法错误,修正如下:
:() { :|:&};:
它实际上定义并调用了一个Shell函数,这个函数会不停的在后台通过管道调用它自己,形成一个永远无法返回的递归,然后瞬间主机的资源就会被耗尽,不得不断电重启,至少我当时不得不断电重启电脑.
2012年4月03日 13:06
很神奇呀 这个是什么原理
2012年4月03日 18:48
@雨衣: 就是定义并执行了一个名为':'的Shell函数, 然后函数又不断执行它本身, 生成无数多个进程, 瞬间主机资源就被耗尽了, 无法回收.
2012年4月04日 21:39
@asuerhao: 谢谢