如何让你的 Linux 系统干净整洁

2015-11-14 10:17


Linux的最大优点之一就是,使用一段时间后,它照样很稳定。Linux面临的最大挑战就是,将它安装起来,并找到并配置你完成工作所需要的软件。一旦你完成了这项任务,它几乎就会顺利运行起来。至于系统维护方面,倒没有太多的东西需要担心。另一方面,Windows是我所说的一款“肮脏”的系统,原因在于它在运行过程中,会生成大量的额外数据,留在硬盘上。众所周知,一段时间后,随着这类数据不断积累,Windows的运行速度自然会慢下来,这时Windows用户要么安装软件,清理掉所有这些垃圾数据;要么定期重装系统,好让启动速度让人觉得焕然一新。实际上,有整个产业致力于销售面向Windows的“清理工具”。其中一些软件其实就是“披着羊皮”的恶意软件,不过有许多还是相当有用。当然,关键在于弄清楚哪个才是真正优秀的工具。

如果你使用Linux,那么可能会很庆幸自己没必要处理这类烦心事,不过也别高兴得太早了。虽然Linux不像Windows那么肮脏,但它确实多少得益于偶尔进行的清理工作。Linux在运行过程中也会生成数据,具体有日志、缓存数据和临时文件。这些额外数据通常并不影响系统的性能。想要清理掉这些数据的主要原因是,收回占用的硬盘空间。如果你在运行固态硬盘(SSD),这可能是你在乎的方面,因为固态硬盘的容量往往不如我们习惯使用的传统硬盘,所以我们要密切关注占用的空间,直到大容量固态硬盘的价格降下来一点。下面不妨介绍为清理Linux系统可以采取的几个要点。

清除旧内核

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

每个Linux发行版处理内核管理的方式不一样。有些拥有出色的GUI工具,让你可以选择运行什么内核,比如OpenSUSELinux 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清理命令,清空你系统上的缓存软件包和更新版。你可以在终端中使用clean、auto clean和auto 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/log.nmbd 2/1 4 KB  
3. /var/log/boot.log 2/1 4 KB  
4. /var/log/auth.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. 

我们关注的主要参数是碎片整理分数。它在这里是0,所以我们没必要为硬盘碎片整理而操心。如果你的主文件夹不在其自己的分区,那么你确实应该将/换成/home,还要检查那里的碎片整理状态。如果你想运行碎片整理程序,只要执行不带-c参数的命令:

sudo e4defrag / 

然后,它会检查文件系统,对需要碎片整理的文件进行碎片整理。在这个过程中,会有大量的输出结果滚动显示。要是你系统上有好多文件,这个过程很漫长,所以你可以在晚上上床前让碎片整理程序开始运行,完毕后关闭系统。为此,你可以执行类似这样的命令:

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

如今我通常采取的做法是,在完成安装新系统、将所有文件倒过来之后,运行碎片整理工具。之后,我会偶尔检查一下状态,我发现此后碎片整理分数基本上保持在0。

值得一提的是,你根本没必要对固态硬盘进行碎片整理。事实上,在固态硬盘上执行上述命令通常会弹出一个消息,显示不允许这种操作。只使用固态硬盘的那些人完全可以不用看这一节。

最后说一句:在Linux中对硬盘进行碎片整理后,别指望性能会有大幅提升,因为即使硬盘上有一些碎片文件,ext4也其实擅长于快速运行。切记:ext4在设计当初就考虑到了高输入/输出文件服务器,它非常高效。即使要处理笔记本电脑或台式机,它也不会“气喘吁吁”。

别过分追求干净!

一些计算机用户在确保系统干净、在最高性能下运行到了无以复加的地步。牢记一点:许多Linux系统在根本没有采取上述措施的情况下运行了好多年。Linux根本不会像Windows或Mac那样慢下来,哪怕长时间使用后也是如此。你想要清空文件的主要原因是,收回硬盘空间,或者控制完全系统备份的大小。如果你与别人一样喜欢一直试用不同的发行版,很可能最后根本不需要采取任何上述措施,就因为你在频繁地重装。不过,知道有这样一些工具总归是件好事。