Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个linux shell命令会停止系统?_Linux_Shell - Fatal编程技术网

为什么这个linux shell命令会停止系统?

为什么这个linux shell命令会停止系统?,linux,shell,Linux,Shell,警告:恶意代码。不要尝试这个。它出现在这里只是为了教育目的 如果在shell中键入此shell代码段,则系统似乎已停止,您知道原因吗 :() { :|:& }; : # 你唯一能做的就是重新启动你的系统。。 你能给我解释一下吗?这是一个无休止的递归。您正在定义一个名为“:”的函数,该函数调用自身并将自己的输出传递到自身的另一个实例,然后循环。由于“&”,管道也被分叉并在后台执行。最后一个“:”实际上启动了调用分号只是结束了前一个命令,该命令定义了函数,换行符在这里也可以 更清

警告:恶意代码。不要尝试这个。它出现在这里只是为了教育目的

如果在shell中键入此shell代码段,则系统似乎已停止,您知道原因吗

:() { :|:& }; :      #
你唯一能做的就是重新启动你的系统。。
你能给我解释一下吗?这是一个无休止的递归。您正在定义一个名为“:”的函数,该函数调用自身并将自己的输出传递到自身的另一个实例,然后循环。由于“&”,管道也被分叉并在后台执行。最后一个“:”实际上启动了调用分号只是结束了前一个命令,该命令定义了函数,换行符在这里也可以

更清楚地说,它就是这样做的

foo() {
  foo | foo &
}
foo

这几乎是一个分叉炸弹,加上大量使用IPC资源。

你应该澄清这段代码是恶意的。我认为没有一个真正的问题是合理的。这个恶意代码是如何工作的当然是一个很有道理的问题,这一问题的答案很好地说明了这一点。。。然后关闭它,而不是一个真正的问题:+1的问题和答案;这里的提问者有时似乎有点过于热心。