我删除了桌面,然后一切都冻结了。我该怎么办?

我删除了桌面,然后一切都冻结了。我该怎么办?

因此,我尝试进行实时磁盘实验(使用外部 HHD 作为实时磁盘),并编写了一个脚本,该脚本在停止之前在我的桌面上创建了 9,023 个目录。作为新手,我运行了这个命令来清理我的混乱局面:

rm -rf Desktop 

然后在我的主目录中创建了一个名为 Desktop 的新文件夹。我的电脑运行良好,几秒钟后,除了鼠标之外,其他一切都冻结了。幸好,所有内容都在活动磁盘上,因此没有丢失任何内容,但我想知道我到底做了什么。

我尝试在谷歌上搜索“ubuntu 删除的桌面目录”和其他变体,但我得到的只是人们试图摆脱它,而不是将它恢复。

编辑:有人对我运行的 fork bomb 感兴趣。别笑:

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

我猜到它会做什么,但我习惯使用 Python,这样我可以在它变得太失控之前快速地杀死它。

对于未来读到这篇文章的任何人:不要运行那个 fork 炸弹,它会造成混乱。

PS:在您说我这样做有多么愚蠢之前,请注意我当时在一个实时磁盘中,这个磁盘就是专门为做这样的事情而设置的,这样我就可以学习。

答案1

幸好你用的是 Live USB,否则你肯定会丢失一些数据。事后清理会浪费大量时间。

首先,您运行了所谓的 fork bomb。fork bomb 是一个简单的、通常被混淆的命令,它会不断产生新的进程、文件夹或文件,直到填满磁盘空间、耗尽 CPU 周期或耗尽所有 RAM。这会导致计算机死机,因为它没有更多资源可用。

其次,您删除了 DE(桌面环境),也就是您看到的内容、与之交互的图形、打开的窗口(有点像 - 有一个窗口管理器,但我们现在先跳过它)。基本上,您杀死了所有可以点击的东西。

学习是件好事。在终端中输入命令之前,请使用您最喜欢的搜索引擎。在按下 之前,务必了解命令的作用ENTER。这一点我再怎么强调也不为过。有些人会故意误导您。终端是一种潜在的强大工具。它是您工具箱中最强大的工具,但与所有工具一样,必须谨慎使用。

如果您能告诉我们 fork bomb 的命令是什么,我们也许能够理解它并告诉您它到底做了什么以及为什么这么做。您似乎很有好奇心,所以也许您也想了解一下?


编辑:

现在您已经包含了 fork bomb 的代码。我会将它包含进去,以便下一个人使用。如果您查看它并分析逻辑,您会发现它表示只要条件存在(为真),就会执行某项操作(创建枚举目录),并且由于没有任何命令让它停止(循环),它会继续运行,直到资源被消耗,RAM 被耗尽,或者直到发生某种碰撞导致程序冻结。(这可能是各种原因,例如内存泄漏,但这可能不是这里的因素。)

从事情的进展来看,或者从我读到的内容来看,你似乎做得很好。这是对其他人的明确警告,不要运行你的代码(你应该使用编辑功能将其添加到你的帖子中,或者如果你愿意,其他人也可以这样做)。这很有创意。我想我从来没有见过这样做,但所有这些的理论都差不多。同样,对于其他人来说,这可能隐藏在模糊的代码中,或者如果你不知道如何解析 Perl(作为示例),你可能根本无法理解的代码中。这是一个很好的例子,说明了什么不该做。

我敢说,你应该完成安装并享受更多乐趣。只需保留好备份即可。

答案2

重新启动,从虚拟控制台重新创建桌面目录,然后再次登录桌面应该可以解决问题。您的计算机崩溃可能是因为您运行了 fork bomb,也可能是因为您的桌面目录在您的桌面环境尝试使用它时消失了,但无论哪种情况,我建议的修复方法都可以修复它(尽管您丢失了桌面上的所有内容)。

答案3

不,那不是 forkbomb,因为 forkbomb 会重复运行一个程序,直到你的 CPU 耗尽,但你可能会对 zip 炸弹感兴趣,这是一种压缩后的 zip 文件,看起来几乎不包含任何数据,比如 42.zip 有 42 KB 的压缩数据,然后它会提取 zip 文件,哦不,你有数 TB 的数据,计算机无法处理这些东西,你的计算机现在会反复崩溃,基本上炸弹就是一个存在来损害你的 CPU 的程序。但是你删除了核心系统文件,这就像删除 Windows 中的 C: 驱动器并创建一个新的一样,你的 C: 驱动器包含 Windows 上的重要文件,因此如果你删除它,你的操作系统就像,C:/Windows/AUTOEXEC.bat 在哪里,你的计算机现在将无法再次启动。

相关内容