Я удалил свой рабочий стол и все зависло. Что я сделал?

Я удалил свой рабочий стол и все зависло. Что я сделал?

Итак, я экспериментировал с живым диском (используя внешний жесткий диск в качестве живого диска) и создал скрипт, который создал 9023 каталога на моем рабочем столе, прежде чем я смог его остановить. Будучи новичком, я запустил эту команду, чтобы навести порядок:

rm -rf Desktop 

А затем создал новую папку под названием Desktop в своем домашнем каталоге. Мой компьютер работал нормально несколько секунд, а затем все, кроме мыши, зависло. К счастью, все это было на живом диске, так что ничего не потерялось, но мне бы хотелось знать, что я на самом деле сделал.

Я пытался гуглить «ubuntu removed desktop directory» и другие вариации, но все, что я нашел, это то, что люди пытались избавиться от него, а не вернуть его.

EDIT: был некоторый интерес к форк-бомбе, которую я запустил. Не смейтесь:

while true; do
for i in a; do
declare b=b+1
mkdir "$b" 
done
done

Я примерно догадывался, что он будет делать, но я привык работать с Python, где я мог быстро его завершить, прежде чем он слишком сильно выйдет из-под контроля.

Всем, кто прочтет это в будущем: не запускайте эту форк-бомбу, она создает беспорядок.

P.S. Прежде чем вы скажете, как глупо было с моей стороны вообще это делать, обратите внимание, что я находился на живом диске, который был отведен специально для таких дел, чтобы я мог учиться.

решение1

Хорошо, что вы сделали это с Live USB, иначе вы бы потеряли некоторые данные, почти наверняка. Очистка после этого была бы огромной тратой времени.

Сначала вы запустили то, что известно как fork bomb. Fork bomb — это простая, часто запутанная команда, которая будет продолжать порождать новые процессы, папки или файлы, пока не заполнит дисковое пространство, не съест циклы ЦП или не израсходует всю оперативную память. Это приводит к зависанию компьютера, поскольку у него больше нет ресурсов, которые он мог бы предоставить.

Во-вторых, вы удалили свою среду рабочего стола (DE), то есть то, что вы видите, это графика, с которой вы взаимодействуете, окна, которые у вас открыты (вроде того — есть менеджер окон, но мы его пока пропустим). По сути, вы убили все, на что можно было нажать.

Хорошо учиться. Используйте свою любимую поисковую систему, прежде чем вводить команды в терминал. Всегда, всегда знайте, что делает команда, прежде чем нажимать ENTER. Я не могу не подчеркнуть этого. Есть люди, которые намеренно введут вас в заблуждение. Терминал — потенциально мощный инструмент. Это ваш самый большой инструмент в вашем арсенале, но, как и все инструменты, им нужно пользоваться осторожно.

Если вы скажете нам, что это была за команда для форк-бомбы, мы, возможно, сможем переварить ее и сказать вам, что именно она сделала и почему. Вы кажетесь любопытным типом, так что, может быть, вы также хотели бы узнать это?


Редактировать:

Теперь вы включили код для вашей fork-бомбы. Я включу это для следующего человека, который придет. Если вы посмотрите на него и проанализируете логику, вы увидите, что он говорит, что пока условие выполняется (истинно), то что-то делается (создается перечисленный каталог) и, поскольку нет ничего, что говорит ему остановиться (цикл), он будет продолжать работать, пока не будут израсходованы ресурсы, не будет съедена оперативная память или пока не произойдет какая-то коллизия, которая заставит все зависнуть. (Это может быть что угодно, например, утечка памяти, но это, вероятно, не является здесь фактором.)

Из того, что слышно, или из того, что я читаю, похоже, что вы проделали довольно хорошую работу. Это четкое предупреждение для других, чтобы не запускать ваш код (вы должны добавить это в свой пост с функцией редактирования или кто-то другой может, если вы хотите). Это было креативно. Я не думаю, что я когда-либо видел, чтобы это делалось именно так, но теория примерно одинакова для всех них. Опять же, для других это может быть скрыто в запутанном коде или коде, который вы просто можете не понять, если не знаете, как разобрать Perl (как пример). Это прекрасный пример того, чего не следует делать.

Я осмелюсь сказать, что вам следует завершить установку и получить еще немного удовольствия. Просто сохраняйте хорошие резервные копии.

решение2

Перезагрузка, повторное создание каталога рабочего стола из виртуальной консоли и повторный вход в рабочий стол должны исправить это. Ваш компьютер сломался либо из-за того, что вы запустили fork bomb, либо из-за того, что ваш каталог рабочего стола исчез, когда ваша среда рабочего стола пыталась его использовать, но в любом случае мое предложенное исправление исправит это (хотя вы потеряли все, что было на вашем рабочем столе).

решение3

Нет, это не forkbomb, так как forkbomb многократно запускает программу, пока ваш процессор не выйдет из строя. Однако вас могут заинтересовать zip-бомбы, представляющие собой zip-файл, сжатый так, чтобы он выглядел так, будто в нем почти нет данных, например, 42.zip с 42 килобайтами сжатых данных, и он извлекает zip-файл. О НЕТ, у вас есть терабайты данных, компьютер не может их обработать, теперь ваш компьютер будет постоянно зависать. По сути, бомба — это программа, которая существует, чтобы наносить вред вашему процессору. Но вы удалили основные системные файлы. Это как удалить диск C: в Windows и создать новый. Ваш диск C: содержит важные файлы в Windows, поэтому если вы удалите его, ваша ОС спросит: ГДЕ НАХОДИТСЯ C:/Windows/AUTOEXEC.bat? Теперь ваш компьютер больше не будет загружаться.

Связанный контент