Ubuntu清理垃圾封面

引言:从 Windows 的”一键清理”到 Linux 的命令行哲学

在使用 Ubuntu 的日子里,我发现了一个有趣的现象。习惯了 Windows 的用户第一次接触 Linux 时,往往会问同一个问题:”Ubuntu 有没有类似 360 或者 CCleaner 那样的垃圾清理软件?”

答案是:没有。但这恰恰是 Linux 的魅力所在。

Windows 生态中充斥着各种第三方清理工具,它们界面华丽、功能繁多,但本质上是因为 Windows 的系统机制留下了太多需要清理的”尾巴” —— 注册表冗余、临时文件堆积、卸载残留等等。而 Linux 的包管理机制从设计之初就考虑到了这些问题,所有的安装、卸载、缓存都有迹可循。我们不需要一个花哨的”一键清理”按钮,只需要几条简洁的命令,就能把系统打理得干干净净。

这篇笔记整理了我在日常使用 Ubuntu 过程中积累的垃圾清理经验和命令技巧。虽然这些内容写于 2013 年,但其中的核心思路至今仍然适用。


一、APT 包管理器缓存清理(最常用)

APT(Advanced Package Tool)是 Ubuntu 的包管理核心。每次安装、更新软件时,APT 都会下载对应的 .deb 包文件并缓存到本地。时间久了,这些缓存文件会占用大量磁盘空间。

三条核心清理命令

1
2
# 1. 清理旧版本的软件缓存
sudo apt-get autoclean

autoclean 会删除那些已经无法下载的旧版本 .deb 包文件。比如某个软件已经更新到了 2.0 版本,那么 1.0 版本的缓存包就会被清理掉,而当前版本的缓存会保留。这是最安全的清理方式。

1
2
# 2. 清理所有软件缓存
sudo apt-get clean

clean 更加彻底,它会删除 /var/cache/apt/archives/ 目录下的所有 .deb 包缓存文件。这意味着如果你之后需要重新安装某个软件,APT 需要重新从网上下载。建议在磁盘空间紧张时使用。

1
2
# 3. 删除不再需要的孤立软件包
sudo apt-get autoremove

autoremove 会删除那些作为依赖被安装、但现在已不再被任何软件包需要的包。比如你安装了一个软件 A,A 依赖 B 和 C。后来你卸载了 A,那么 B 和 C 就变成了”孤立软件包”,autoremove 会自动清理它们。

组合使用推荐

在日常维护中,我推荐将三条命令组合使用:

1
sudo apt-get autoclean && sudo apt-get autoremove

这样既清理了过期的缓存,又删除了无用的依赖包,一举两得。

APT包管理缓存清理


二、浏览器缓存清理

浏览器是日常使用中产生缓存最多的应用之一。Opera 和 Firefox(当时的主流浏览器)的缓存文件都存储在用户主目录下。

Opera 缓存

1
ls ~/.opera/cache4

查看 Opera 浏览器的缓存文件目录。如果需要清理,可以直接删除该目录下的内容:

1
rm -rf ~/.opera/cache4/*

Firefox 缓存

1
ls ~/.mozilla/firefox/*.default/Cache

Firefox 的缓存位于用户配置文件目录下的 Cache 文件夹中。*.default 代表默认配置文件的目录名(通常是一串随机字符)。

1
rm -rf ~/.mozilla/firefox/*.default/Cache/*

注意:这些命令只清理缓存文件,不会影响书签、密码、历史记录等重要数据。


三、清理多余的内核(释放大量空间)

Ubuntu 每次更新内核时,旧版本的内核并不会被自动删除。久而久之,这些旧内核会占用数百 MB 的磁盘空间。对于 /boot 分区来说,这是一个需要特别关注的问题。

第一步:查看当前安装的内核

1
dpkg --get-selections | grep linux

这条命令会列出所有与 linux 相关的包。其中带有 image 关键字的就是内核文件。例如:

1
2
3
4
linux-image-2.6.27-2-generic              install
linux-image-2.6.27-7-generic install
linux-image-2.6.27-9-generic install
linux-image-2.6.27-11-generic install

第二步:确认当前正在使用的内核

这一步至关重要!千万不要删错!

1
uname -r

这条命令会显示当前系统正在使用的内核版本,比如 2.6.27-11-generic绝对不能删除当前正在使用的内核,否则系统将无法启动。

第三步:删除旧内核

1
2
3
sudo apt-get remove linux-image-2.6.27-2-generic
sudo apt-get remove linux-image-2.6.27-7-generic
sudo apt-get remove linux-image-2.6.27-9-generic

每删除一个内核,大约可以释放 130-140 MB 的磁盘空间。如果你有多个旧内核,加起来就是可观的空间。

安全操作建议

强烈建议:只保留当前使用的内核和一个旧版本作为备用,删除其余所有旧内核。

1
2
3
4
5
# 查看当前内核
uname -r

# 删除所有其他内核(替换为实际版本号)
sudo apt-get purge linux-image-x.x.x-x-generic

使用 purge 而非 remove,可以同时删除配置文件,释放更多空间。

清理Linux旧内核释放空间


四、安装包临时文件清理

APT 在下载软件包时会先将文件存储在临时目录中。这些文件在安装完成后有时不会被自动清理。

包缓存目录

1
/var/cache/apt/archives

这是已经下载完成的 .deb 包缓存目录。使用 apt-get clean 可以清理此目录。

未完成的下载

1
/var/cache/apt/archives/partial

这个目录存放的是尚未下载完成的临时文件。如果之前有中断的下载任务,这里的文件可能是残留的。

1
2
# 清理未完成的下载
sudo rm -rf /var/cache/apt/archives/partial/*

五、额外的清理技巧(进阶)

除了上述基本操作,还有一些进阶的清理方法可以帮助你的 Ubuntu 系统保持最佳状态。

5.1 清理缩略图缓存

Ubuntu 会为浏览过的图片生成缩略图缓存,日积月累也会占用不少空间:

1
rm -rf ~/.cache/thumbnails/*

5.2 清理应用日志

系统日志和应用日志会随着时间不断增长:

1
2
3
4
5
6
# 查看日志占用空间
du -sh /var/log/

# 清理旧日志
sudo find /var/log/ -name "*.gz" -delete
sudo find /var/log/ -name "*.1" -delete

5.3 清理用户缓存

各个应用程序都会在 ~/.cache 目录下存储缓存文件:

1
2
3
4
5
6
# 查看缓存占用情况
du -sh ~/.cache/

# 清理特定应用的缓存
rm -rf ~/.cache/google-chrome/
rm -rf ~/.cache/pip/

5.4 一键清理脚本

将常用的清理命令整合为一个脚本,方便定期执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
echo "=== Ubuntu System Cleanup ==="
echo "Cleaning apt cache..."
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove -y

echo "Cleaning thumbnails cache..."
rm -rf ~/.cache/thumbnails/*

echo "Cleaning old logs..."
sudo find /var/log/ -name "*.gz" -delete

echo "Cleanup complete!"

将此脚本保存为 cleanup.sh,赋予执行权限后定期运行:

1
2
chmod +x cleanup.sh
sudo ./cleanup.sh

六、磁盘空间检查与监控

在清理垃圾之前和之后,建议检查一下磁盘空间的变化,直观地感受清理的效果:

1
2
3
4
5
# 查看各分区的使用情况
df -h

# 查看当前目录下的文件大小排行
du -sh /* 2>/dev/null | sort -rh | head -20
命令 用途 输出示例
df -h 查看磁盘分区使用情况 /dev/sda1 50G 30G 20G 60% /
du -sh /* 查看根目录下各目录大小 4.2G /usr
ncdu 交互式磁盘使用分析器(需安装) 图形化目录大小浏览

总结:Linux 清理的哲学

回看这篇写于 2013 年的笔记,我对 Linux 系统维护的理解已经发生了很大的变化。当时我以为清理垃圾就是执行几条命令,释放一些空间。但如今我更加深刻地认识到:Linux 的垃圾清理不是”治病”,而是”养生”。

Windows 的清理工具更像是在”治病” —— 系统已经积累了大量问题,需要用强力手段去修复。而 Linux 的清理更像是在”养生” —— 通过日常的小维护,让系统始终保持在健康的状态。

几条简单的命令,不需要华丽的界面,不需要复杂的配置。这就是 Linux 的哲学:简单、透明、可控。 你知道每一条命令在做什么,你知道删除的是什么,你知道系统为什么变快了。这种掌控感,是任何”一键清理”工具都无法给予的。

这篇笔记记录于 2013 年 9 月,是我在 Ubuntu 上积累的系统维护经验。如今回首,那些敲下的命令已经内化成了肌肉记忆。技术的成长不在于学会了多少新工具,而在于理解了系统运作的本质。当你能用几条命令解决别人需要一个软件才能搞定的问题时,你就真正理解了什么是”简洁的力量”。