在 Ubuntu 上进行系统清理(cleanup)主要可以分为几个层面:软件包清理、系统日志清理、用户缓存清理和磁盘空间分析。以下是详细的步骤:
这是最重要的一步,通常能释放出几百MB到几GB的空间。
# 1. 卸载不再需要的依赖包(孤儿包)
sudo apt autoremove
# 2. 清理已下载的 .deb 安装包缓存
# /var/cache/apt/archives/ 目录下的文件
sudo apt clean
# 3. 清理旧版本的软件包缓存(比 clean 温柔一点,保留最近版本)
sudo apt autoclean
建议顺序: 先 autoremove,再 autoclean 或 clean。
Systemd 的日志可能会占用大量空间(特别是如果系统运行了很久)。
# 查看当前日志占用的磁盘空间
journalctl --disk-usage
# 保留最近 100MB 的日志,删除旧的
sudo journalctl --vacuum-size=100M
# 或者保留最近 3 天的日志
sudo journalctl --vacuum-time=3d
注意: 清理旧内核时请务必保留当前正在使用的内核和至少一个备用内核,不要全部删除。
清理用户缓存(Thumbnails, pip cache 等):
# 清理缩略图缓存
rm -rf ~/.cache/thumbnails/*
# 清理 pip 缓存(如果你用 Python)
rm -rf ~/.cache/pip
清理旧内核(手动操作需谨慎):
通常 sudo apt autoremove 会自动处理旧内核。如果你想手动检查:
# 查看当前使用的内核
uname -r
# 查看系统中安装的所有内核版本
dpkg --list | grep linux-image
# 删除特定的旧内核(将 VERSION 替换为具体版本号,不要删掉当前使用的)
# sudo apt remove linux-image-VERSION-generic
如果你不确定空间去哪了,可以使用工具分析。
使用 ncdu(推荐,终端工具):
sudo apt install ncdu
sudo ncdu / # 扫描根目录,按大小排序,可以交互式删除
使用 baobab(图形化工具):
sudo apt install baobab
baobab # 运行后选择扫描磁盘
如果你使用 Snap 安装软件,Snap 会保留之前版本的安装包,占用空间较大。
# 查看 snap 占用的空间
du -h /var/lib/snapd/snaps
# 手动清理旧版本(虽然 snap 有自动清理,但有时不彻底)
# 或者使用脚本清理(需谨慎):
# set -eu
# snap list --all | awk '/disabled/{print $1, $3}' |
# while read snapname revision; do
# snap remove "$snapname" --revision="$revision"
# done
注意:Snap 的清理脚本建议先了解清楚再运行,或者等待系统自动清理。
如果你是开发者,Docker 镜像和容器可能占用几十GB。
# 删除所有停止的容器、未使用的网络、悬空镜像
docker system prune
# 彻底清理(包括未使用的卷和镜像)
docker system prune -a --volumes
你可以在终端中依次运行以下命令,这是最标准的清理流程:
echo "正在清理软件包..."
sudo apt update
sudo apt autoremove -y
sudo apt autoclean -y
echo "正在清理系统日志..."
sudo journalctl --vacuum-time=3d
echo "正在清理用户缓存..."
rm -rf ~/.cache/thumbnails/*
echo "清理完成!"
警告: 永远不要使用 rm -rf / 或随意删除你不认识的 /var 或 /usr 下的文件,这可能会导致系统崩溃。