Memahami pernyataan shell ini

8

Saya akui itu pekerjaan rumah tapi saya bingung menjelaskan baris perintah berikut:

PERINGATAN : Ini yang disebut BOM FORK! Baris perintah ini dapat dan akan membuat crash komputer Anda dengan menggunakan semua RAM dan CPU (percayalah, saya sudah mencobanya ...)

:(){ :|:& };:

Seperti yang saya tahu bahwa saya harus melakukannya sendiri di sini adalah apa yang saya miliki sejauh ini (mencari karakter ini sangat mengecewakan).

  1. Pipa memungkinkan untuk menggabungkan beberapa perintah bersama sehingga output pertama digunakan oleh yang kedua sebagai input.
  2. & Adalah untuk menjalankan perintah di latar belakang (pada dasarnya digunakan untuk memulai sesuatu dari shell yang seharusnya tidak diblokir oleh perintah)

Saya kira itu: apakah garpu? Tapi di sini saya benar-benar tersesat! Saya mau belajar, jadi mungkin seseorang memiliki sumber yang bagus di mana saya bisa membaca tentang itu?

Warren Faith
sumber
@kkp: bukankah situasi di mana sistem Anda tidak merespons yang mirip dengan gangguan? Solusi untuk memperbaikinya adalah sama: hard reset sistem
WarrenFaith
Ya..kau benar.
samarasa
FORKBOOOOOMB: D
zookalicious

Jawaban:

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.

Sumber: Forkbombs di Wikipedia

Egil
sumber
terima kasih ... kedengarannya sangat jahat! Tidak tahu bahwa Anda dapat mendefinisikan metode dengan cara ini. sangat menarik
WarrenFaith
dapatkah Anda memberi tahu saya bagaimana Anda menemukan artikel wikipedia itu? Saya mencoba tetapi tidak berhasil ...
WarrenFaith
Saya sudah tahu apa yang harus dicari;)
Egil
2
Ok, jadi Anda adalah peretas jahat :) terima kasih! banyak membantu saya
WarrenFaith
Sebagian besar dari kita yang telah meramban forum Ubuntu telah diperingatkan berkali-kali tentang menjalankan forkbombs atau sudo rm jika Anda tahu sisanya dll ... Entahlah dari mana Egil mendapatkannya dari: P
zookalicious