这个命令在bash中做了什么:,_,(){,_,| ,_,&安培;};,_,

时间:2014-11-29 00:59:01

标签: bash fork

,_,( ){ ,_,| ,_,&};,_,

我不确定这意味着什么...

看起来像一个bash命令,但它可能是s bash shell指令或其他东西 如果有人能帮助理解这一点会很感激。我跑的时候它杀了我的bash。

1 个答案:

答案 0 :(得分:13)

它是fork bomb;它会产生(可能)无限数量的进程,直到你的系统耗尽资源(并且通常变得不可操作)。

它定义了名为,_,的函数,它自己运行(递归),并将输出传递给它自己。最后,_,是开始这件事所必需的。

已格式化,,_,替换为fun,如下所示:

fun() {
   fun | fun &
};
fun

fun的每次调用都会产生另外两次fun的调用。 &在后​​台启动流程(流程增加率指数)。

它是better known :() { :|: & };:

的变体

但是,有一些方法可以防止系统崩溃;例如,在Linux中,您可以编辑/etc/security/limit.conf&设置用户的最大进程数。其他系统有其他(通常是类似的)方法。

对于UNIX用户来说,运行一个fork炸弹并使系统崩溃似乎是一件值得通过的事情。它告诉你:

  1. 强加流程资源限制的重要性;
  2. 复制&从不受信任的来源(例如互联网)执行您不理解的命令不是一个好主意