了解此shell语句


8

我承认这是一项家庭作业,但我无法解释以下命令行:

警告:这就是所谓的FORK BOMB!此命令行可以并且会因为消耗所有RAM和CPU而使您的PC崩溃(请相信我,我尝试过...)

:(){ :|:& };:

据我所知,这是我到目前为止要做的一件事(搜索这些字符非常令人沮丧)。

  1. 管道可以将一些命令连接在一起,以便第一个输出被第二个用作输入。
  2. &是在后台运行命令(通常用于从不应受该命令阻止的shell中启动命令)

我猜:是要分叉吗?但是在这里我完全迷路了!我愿意学习,所以也许有人拥有一个很好的资源可供我阅读?


@kkp:是不是您的系统没有响应类似崩溃的情况?解决该问题的方法是相同的:硬重置系统
WarrenFaith

是的,没错。
samarasa

FORKBOOOOOMB:D
zookalicious

Answers:


14
:()      # define ':' -- whenever we say ':', do this:
{        # beginning of what to do when we say ':'
    :    # load another copy of the ':' function into memory...
    |    # ...and pipe its output to...
    :    # ...another copy of ':' function, which has to be loaded into memory
         # (therefore, ':|:' simply gets two copies of ':' loaded whenever ':' is called)
    &    # disown the functions -- if the first ':' is killed,
         #     all of the functions that it has started should NOT be auto-killed
}        # end of what to do when we say ':'
;        # Having defined ':', we should now...
:        # ...call ':', initiating a chain-reaction: each ':' will start two more.

资料来源:维基百科上的Forkbombs


谢谢...听起来很邪恶!不知道您可以用这种方式定义方法。非常有趣
WarrenFaith 2011年

你能告诉我你是如何找到维基百科文章的吗?我试图但没有成功……
WarrenFaith 2011年

我已经知道该搜索什么了;)
Egil

2
好的,所以您是一个邪恶的坏黑客:)还是谢谢!对我帮助很大
WarrenFaith

我们大多数浏览过Ubuntu论坛的人都被警告过多次关于运行Forkbombs或sudo rm rf,您知道其余的信息等等。Dunno,如果那是Egil的
发源地
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.