Ubuntu 清理缓存的有效途径
一 核心清理清单
- 下表覆盖日常最安全、见效最快的清理项(APT、用户缓存、日志、临时文件等),按需执行即可。
| 目标 |
操作 |
命令示例 |
说明 |
| APT 缓存 |
删除所有已下载包 |
sudo apt clean |
清空 /var/cache/apt/archives,释放空间明显 |
| APT 缓存 |
仅删过期包 |
sudo apt autoclean |
保留当前可用版本,风险最低 |
| 无用依赖 |
移除不再需要的包 |
sudo apt autoremove |
建议先执行:sudo apt autoremove --dry-run 预览 |
| 用户缓存 |
清理缩略图 |
rm -rf ~/.cache/thumbnails/* |
再次访问会重建 |
| 用户缓存 |
清理应用缓存 |
rm -rf ~/.cache/* |
谨慎,避免误删正在使用的应用数据 |
| 系统临时文件 |
清理 /tmp |
sudo rm -rf /tmp/* |
重启后通常会自动清理,手动前确认无正在使用文件 |
| 系统日志 |
按时间保留 |
sudo journalctl --vacuum-time=3d |
保留最近 3 天;也可用 --vacuum-size=100M 限制大小 |
| 系统日志 |
查看占用 |
journalctl --disk-usage |
先评估再清理 |
| 孤立库 |
查找并删除 |
sudo apt install deborphan && deborphan |
xargs sudo apt purge -y |
| 图形化工具 |
一键扫描清理 |
sudo apt install stacer && stacer 或 sudo apt install bleachbit && bleachbit |
适合可视化选择与隐私清理 |
以上命令均为常用、低风险的系统维护操作,适合作为例行清理清单执行。
二 进阶清理与风险点
- 旧内核清理(高风险,务必谨慎)
- 查看当前运行内核:uname -r
- 列出已安装内核:dpkg --list | grep linux-image
- 删除旧版本(示例):sudo apt purge linux-image-5.4.0-XX-generic
- 同步引导配置:sudo update-grub
- 建议至少保留 当前内核 + 1 个备用,避免回退无门。
- Snap 与 Flatpak
- 清理 Snap 缓存:sudo rm -rf /var/lib/snapd/cache/*
- 卸载未使用运行时:flatpak uninstall --unused
- 如空间告急,优先卸载不用的 Snap 应用:snap list && sudo snap remove 。
- 内存缓存释放(非磁盘空间)
- 仅清理页缓存:sync && echo 1 | sudo tee /proc/sys/vm/drop_caches
- 清理目录项与 inode:sync && echo 2 | sudo tee /proc/sys/vm/drop_caches
- 全部清理:sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
- 说明:这是释放 内存缓存,对磁盘占用无影响;生产环境不建议频繁执行,可能造成短时性能下降。
- 重要目录不要直接删除
- 不要手动删除 /snap、/usr、/var 等系统目录整体;/snap 是 Snap 应用容器,/usr 由包管理器维护,/var 包含日志与数据库等关键可变数据,应仅清理其下子目录的冗余内容。
三 清理前后排错与定位
- 快速评估空间占用
- 整体使用:df -h
- 定位大目录:sudo du -sh /*
- 分析缓存目录:sudo du -sh /var/cache/apt/archives
- 可视化分析:sudo apt install ncdu && ncdu /var/cache
- 日志占用评估与裁剪
- 查看日志占用:journalctl --disk-usage
- 按时间或大小裁剪:sudo journalctl --vacuum-time=3d 或 --vacuum-size=500M
- 清理残余配置(可选)
- 清理已卸载包的残留配置:dpkg -l | grep ^rc | awk ‘{print $2}’ | xargs sudo dpkg -P
- 风险提示
- 执行删除前确认目标路径与作用;对 rm -rf、apt purge 等操作建议先用 --dry-run 或备份关键数据。
四 自动化与维护建议
- 例行维护(每周/每月)
- 例行:sudo apt clean && sudo apt autoremove -y
- 日志:sudo journalctl --vacuum-time=7d
- 用户缓存:rm -rf ~/.cache/thumbnails/*
- 定时任务示例(cron)
- 创建脚本 /usr/local/bin/cleanup.sh:
- #!/bin/bash
- sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
- sudo apt clean && sudo apt autoremove -y
- sudo journalctl --vacuum-time=7d
- rm -rf /tmp/*
- 赋权并加入 cron(每日 2 点):
- chmod +x /usr/local/bin/cleanup.sh
- sudo crontab -e 添加:0 2 * * * /usr/local/bin/cleanup.sh
- 使用建议
- 生产环境避免频繁 drop_caches;旧内核与日志策略按业务保留周期设置;优先使用包管理器与专用命令而非粗暴删除目录。