清理 Linux 磁盘空间通常分为几个步骤:分析空间占用、清理系统缓存和清理用户文件。
这是一个安全、有效的分步指南:
# 1. 🔍 分析磁盘空间占用
在删除任何东西之前,首先要找出是什么占用了空间。
查看整体磁盘使用情况:
这个命令会显示所有挂载分区的总空间、已用空间、可用空间和挂载点。df -h
(留意
Use%接近 100% 的分区)分析特定目录的大小:
du(disk usage) 命令非常有用。ncdu是一个更好用的交互式工具,如果你的系统上没有,可以尝试sudo apt install ncdu或sudo dnf install ncdu来安装它。如果使用
du,这里有一个查看根目录下第一层目录大小的好方法:# 这可能需要一些时间,它会显示根目录下每个目录的总大小sudo du -h --max-depth=1 /
(注意:你可能会看到一些 "Permission denied" 的错误,使用
sudo可以减少这种情况。你也可以将/换成你从df -h看到的特定挂载点,比如/home)通过这个命令,你可以找到占用空间最大的顶级目录(比如
/var,/home,/opt),然后再逐层深入,例如:sudo du -h --max-depth=1 /var
# 2. 🧹 清理系统级缓存和日志
系统文件是常见的空间占用大户,而且通常可以安全清理。
清理包管理器缓存:
这是最安全也最有效的步骤之一。对于 Debian/Ubuntu (使用 APT):
# 清除下载的 .deb 包文件sudo apt-get clean
# 移除不再需要的自动安装的依赖包sudo apt-get autoremove
对于 RHEL/CentOS/Fedora (使用 DNF 或 YUM):
# 清除所有缓存的包和元数据sudo dnf clean all# 或者sudo yum clean all
管理 / 清理 Systemd 日志 (journald):
journald的日志会变得非常大。# 检查当前日志占用了多少空间journalctl --disk-usage
# (推荐) 清理日志,只保留最近 100MBsudo journalctl --vacuum-size=100M
# (可选) 清理日志,只保留最近 7 天sudo journalctl --vacuum-time=7d
清理旧的日志文件 (位于 /var/log):
旧的日志文件通常会被logrotate自动压缩和删除,但有时会堆积。# 查看 /var/log 目录占用的空间sudo du -sh /var/log/
# 你可以安全地删除旧的、已压缩的日志# 例如,删除 .gz 和 .1, .2.gz 等结尾的旧日志sudo find /var/log -type f -name "*.gz" -delete
sudo find /var/log -type f -name "*.[0-9]" -delete
注意: 不要删除当前正在使用的日志文件(如
syslog,messages)。
# 3. 👤 清理用户级文件
这些是你自己的文件,需要你来判断是否需要。
清空回收站:
很多人忘了这个。# 通常位于这里rm -rf ~/.local/share/Trash/files/*
查找大文件:
使用find命令查找,例如,查找/home目录下所有大于 100MB 的文件:find /home -type f -size +100M
(将
/home换成你想要搜索的目录,+100M的大小也可以调整)。检查常用目录:
~/Downloads(下载目录)~/Videos(视频目录)~/.cache(用户程序的缓存)
⚠️ 重要警告
在使用
rm命令时请务必小心,尤其是和sudo一起使用时。在删除任何你不确定的文件(特别是/var,/usr,/etc目录下的文件)之前,请先搜索一下它的作用。误删系统文件可能会导致系统崩溃。