2023年11月29日发(作者:)

Linux系统的垃圾清理⽅法总结

Linux的最⼤优点之⼀就是,使⽤⼀段时间后,它照样很稳定。Linux⾯临的最⼤挑战就是,将它安装起来,并找到并配置你完

成⼯作所需要的软件。⼀旦你完成了这项任务,它⼏乎就会顺利运⾏起来。⾄于系统维护⽅⾯,倒没有太多的东西需要担⼼。

另⼀⽅⾯,Windows是我所说的⼀款肮脏的系统,原因在于它在运⾏过程中,会⽣成⼤量的额外数据,留在硬盘上。众所周

知,⼀段时间后,随着这类数据不断积累,Windows的运⾏速度⾃然会慢下来,这时Windows⽤户要么安装软件,清理掉所

有这些垃圾数据;要么定期重装系统,好让启动速度让⼈觉得焕然⼀新。实际上,有整个产业致⼒于销售⾯向Windows

理⼯具。其中⼀些软件其实就是披着⽺⽪的恶意软件,不过有许多还是相当有⽤。当然,关键在于弄清楚哪个才是真正优秀

的⼯具。

如果你使⽤Linux,那么可能会很庆幸⾃⼰没必要处理这类烦⼼事,不过也别⾼兴得太早了。虽然Linux不像Windows那么肮

脏,但它确实多少得益于偶尔进⾏的清理⼯作。Linux在运⾏过程中也会⽣成数据,具体有⽇志、缓存数据和临时⽂件。这些

额外数据通常并不影响系统的性能。想要清理掉这些数据的主要原因是,收回占⽤的硬盘空间。如果你在运⾏固态硬盘

(SSD),这可能是你在乎的⽅⾯,因为固态硬盘的容量往往不如我们习惯使⽤的传统硬盘,所以我们要密切关注占⽤的空间,

直到⼤容量固态硬盘的价格降下来⼀点。下⾯不妨介绍为清理Linux系统可以采取的⼏个要点。

清除旧内核

警告!在清除与Linux内核有关的任何东西时,要极其⼩⼼!清除错软件包很有可能会导致你的计算机瘫痪,或者完全沦为垃

圾!我们可是警告过你了!

每个Linux发⾏版处理内核管理的⽅式不⼀样。有些拥有出⾊的GUI⼯具,让你可以选择运⾏什么内核,⽐如OpenSUSE

Linux MintManjaro。⽽另⼀些发⾏版很少或从不更新内核,将⼿动更新这项任务完全交给了⽤户。内核相当重要,拥有经

过更新的内核是你确保系统安全、远离病毒和⿊客的主要⼿段之⼀。我在这⾥会着重介绍Ubuntu,不过⿎励你深⼊研究⼀番

内核,了解你使⽤的那个发⾏版如何处理内核的更新。

Ubuntu将内核连同系统上的其他⼀切⼀块更新,并留下旧内核。内核更新偶尔会导致问题,所以最好保留旧内核。那样万⼀

需要的话,可以恢复到旧内核。问题在于,Ubuntu完全将旧内核留在那⾥;⼀段时间后,最后你的系统上安装了⼀⼤堆旧内

核。内核及相关⽂件占⽤⼤量空间,多达数百MB。因⽽,清除旧内核可以释放好多空间。

Ubuntu下管理内核的最佳⼯具是新⽴得软件包管理器(Synaptic Package Manager)。要是它还没有安装到你的系统上,现

在就安装。在你打开该管理器之前,先打开终端,执⾏这个命令:

复制代码

代码如下:

uname -r

你应该会看到类似这样的输出结果:

复制代码

代码如下:

3.16.0-38-generic

这是⽬前运⾏的内核的版本号,需要把它记下来,因为我们想要确保没有对这个内核或随带的任何⽂件做任何操作。

由于我们知道了运⾏什么样的版本,接下来可以打开该管理器,看看有没有任何旧内核在占⽤空间。想找到内核,只要往搜索

框中输⼊“linux-image”,然后按已安装版本对列表进⾏排序。为此,你可以点击软件包列表的标题。即使你只安装了⼀个版本

的内核,也会看到与它⼀块安装的⼀⼤堆⽂件列了出来。你没必要将它们逐个清理掉,⾼亮选中主内核映像软件包,并将它标

记为从右击菜单中完全清除,就可以让系统清除与之相关的⼀切⽂件。务必要反复核查版本号,确保没有清除当前版本。要是

你按已安装的软件包对列表进⾏排序,最新的运⾏中内核应该会出现在列表的最上⾯。现在可以标记所有的旧内核,不过在你

点击应⽤按钮之前,还需要寻找另⼀个软件包。

清空搜索栏,现在搜索⼀下“linux-headers”。要是它们已安装,你应该会获得⼀份列表,上⾯列出了与安装在系统上的内核有

关的所有已安装的Linux标题⽂件。版本号伴随内核,所以务必要确保你没有清除当前版本的标题⽂件。实际上,标题⽂件对

于计算机的⽇常操作⽽⾔并⾮必要,但是如果你想从源代码编译程序或驱动程序,有标题⽂件在是好事。它们并不占⽤太多的

空间,所以我总是将运⾏中内核的标题⽂件留在系统上。

使⽤BleachBit

有⼀些确实很出⾊的Linux版程序可以⾃动检查系统,清除额外⽂件。我总是使⽤的⼀个程序就是BleachBit。它的历史并不

短,⼏乎每⼀个Linux发⾏版上都有它。我⽤它来清除系统上的任何异常⽂件还没有遇到过任何问题。BleachBit很轻巧,却提

供了⼀些相当强⼤的功能特性。我们在此只介绍很基本的功能,不过需要花点时间才能深⼊了解它的本领,你完全会觉得⼀些

⾼级功能很有⽤。

⼀旦你安装好了BleachBit,就会在仪表板或应⽤程序菜单中看到与它对应的两个条⽬。⼀个让你可以以根⽤户来运⾏它,另

⼀个以你本⼈来运⾏它。以你本⼈来运⾏会清除与你帐户有关的⽂件,⽽以根⽤户来运⾏会清除缓存软件包和系统⽇志之类的

数据。BleachBit还让你可以清空可能安装在系统上的Web浏览器、电⼦邮件客户程序以及插件的缓存内容。这⾥选择时要⼩

⼼,因为它会清除掉你的所有已保存密码和设置;如果你想清空⼀切,这也许没什么,但如果你使⽤别⼈的帐户来运⾏它,可

能会让⽤户不⾼兴。我发现,保持其他设置不变,仅仅清空Web浏览器⾥⾯的缓存就能收回⼤量的空间。

以根⽤户运⾏BleachBit让你可以使⽤APT清理命令,清空你系统上的缓存软件包和更新版。你可以在终端中使⽤cleanauto

cleanauto remove命令,不过在这⾥全为你做好了。说到终端,BleachBit在这⾥也可以使⽤。你可以执⾏“bleachbit”命令,

它就会以你⽤GUI配置的预设值来运⾏。这很好,因为它意味着你可以制作⼀个Bash脚本,⾃动清理系统。

对硬盘进⾏碎⽚整理

已经说过好多次:运⾏Linux的优点之⼀就是,从来没必要对硬盘进⾏碎⽚整理。其实,并⾮完全如此。⼤多数普通⽤户从来

没必要为⽂件碎⽚整理⽽操⼼,因为碎⽚现象不会严重到影响旋转硬盘性能的地步。ext4⽂件系统⾮常擅长以⼀种并不进⾏碎

⽚整理的⽅式来存储⽂件。不像Windows上使⽤的NTFS⽂件系统,ext4将数据分散在整个硬盘上,将类似的⽂件归为⼀类,

以便不⽤碎⽚整理,就为⽂件的增长留出了⼤量空间。这意味着,你在硬盘上只要有⼤量的闲置空间,可能根本不需要进⾏碎

⽚整理。我的系统运⾏了两三年,检查硬盘后,发现碎⽚整理分数为“0”,这表明根本不需要碎⽚整理。

既然如此,我为何还要费⼼告诉各位进⾏碎⽚整理呢?在⼀些情况下,你可能需要考虑碎⽚整理,⽐如如果你的硬盘开始塞

满。已占⽤空间超过80%的任何ext4旋转硬盘往往会开始对⽂件进⾏碎⽚整理,因为系统将⽂件分开来,确保空间增加会开始

变得更难。引起⽂件碎⽚整理的另⼀种情形是,如果你有⼀⼤批⾮常庞⼤的⽂件。如果⽤户处理⼤量视频制作、处理⼤型数据

库或虚拟机,最后就会⾯临⼀⼤堆⾮常庞⼤的⽂件。⼀段时间后,这些⽂件的碎⽚现象会变得⾮常严重,运⾏碎⽚整理完全会

显著改善硬盘性能。

打开终端,执⾏这个命令,看看你的系统是否需要碎⽚整理:

复制代码

代码如下:

sudo e4defrag / -c

输⼊密码,程序会迅速分析你的⽂件系统。如果你有好多⽂件,这个过程可能需要1分钟,所以耐⼼点。你应该会看到类似这

样的输出结果:

复制代码

代码如下:

now/best size/ext

1. /var/log/syslog 3/1 4 KB

2. /var/log/samba/ 2/1 4 KB

3. /var/log/ 2/1 4 KB

4. /var/log/ 3/1 5 KB

5. /var/log/ConsoleKit/history 3/1 10 KB

Total/best extents 128413/128382

Average size per extent 41 KB

Fragmentation score 0

[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]

This directory (/) does not need defragmentation.

Done.

⼀般对磁盘的清理⽅式

1.定期对重要⽂件系统扫描,并作对⽐,分析那些⽂件经常读写

复制代码

代码如下:

#IS-IR/home>;

#diff

通过分析预测空间的增长情况,同时可以考虑对不经常读写⽂件进⾏压缩,以减少占⽤空间。

2.查看空间⽂件系统的inodes消耗

复制代码

代码如下:

#df-i/home

如果还有⼤量的inpde可⽤,说明⼤⽂件占⽤空间,否贼可能⼤量⼩⽂件占⽤空间。

3.找出占⽤空间较⼤的⽬录

查看/home占⽤的空间

复制代码

代码如下:

#du-hs/home

代码如下:

#fsck-y/home

9.重启机器

有了以上的⼗招,应该可以解决⼤部分问题,但是关键还是安装时要规划好分区。另外发现磁盘蛮时,不能急,⼩⼼操作,认

真分析原因,然后⼩⼼应对。需要注 意,以上⼗招不需要顺序执⾏,有的可能⼀招封喉,有的可能需要数招并⽤,删除操作

⼀定要⼩⼼。如果还不⾏,只有采取增加硬盘,重新安装系统等办法了

还可以:

复制代码

代码如下:

cd/

du-h--max-depth=q/grep M/sort-n

找到最⼤的那个⽬录后进⼊该⽬录

再运⾏

复制代码

代码如下:

du-h-max-depth=1/grep M /sort-n

找出来以后看是否有⽤的⽂件

没⽤就删掉

希望以上的清理⽅法步骤能够给操作linux系统的⽤户带来磁盘空间⼀定的释放。

我们关注的主要参数是碎⽚整理分数。它在这⾥是0,所以我们没必要为硬盘碎⽚整理⽽操⼼。如果你的主⽂件夹不在其⾃⼰

的分区,那么你确实应该将/换成/home,还要检查那⾥的碎⽚整理状态。如果你想运⾏碎⽚整理程序,只要执⾏不带-c参数的

命令:

复制代码

代码如下:

sudo e4defrag /

然后,它会检查⽂件系统,对需要碎⽚整理的⽂件进⾏碎⽚整理。在这个过程中,会有⼤量的输出结果滚动显⽰。要是你系统

上有好多⽂件,这个过程很漫长,所以你可以在晚上上床前让碎⽚整理程序开始运⾏,完毕后关闭系统。为此,你可以执⾏类

似这样的命令:

复制代码

代码如下:

sudo e4defrag / && sudo e4defrag /home && sudo shutdown -h now

如今我通常采取的做法是,在完成安装新系统、将所有⽂件倒过来之后,运⾏碎⽚整理⼯具。之后,我会偶尔检查⼀下状态,

我发现此后碎⽚整理分数基本上保持在0

值得⼀提的是,你根本没必要对固态硬盘进⾏碎⽚整理。事实上,在固态硬盘上执⾏上述命令通常会弹出⼀个消息,显⽰不允

许这种操作。只使⽤固态硬盘的那些⼈完全可以不⽤看这⼀节。

最后说⼀句:在Linux中对硬盘进⾏碎⽚整理后,别指望性能会有⼤幅提升,因为即使硬盘上有⼀些碎⽚⽂件,ext4也其实擅

长于快速运⾏。切记:ext4在设计当初就考虑到了⾼输⼊/输出⽂件服务器,它⾮常⾼效。即使要处理笔记本电脑或台式机,