清理Ubuntu系统的高级技巧
APT缓存是系统更新和软件安装过程中积累的.deb文件,长期不清理会占用大量磁盘空间(尤其是频繁更新的系统)。除了基础的sudo apt clean(删除所有缓存)和sudo apt autoclean(仅删除旧版本缓存),还可以通过apt-listbugs工具查看包的已知问题,避免清理有bug的包:
sudo apt install apt-listbugs # 安装工具 sudo apt-listbugs # 查看包的问题列表 sudo apt clean # 确认无问题后再清理 此方法可避免误删有潜在问题的包,提升清理安全性。
旧内核会占用/boot分区空间(尤其是多版本内核共存时),但务必保留当前正在使用的内核(通过uname -r查看)。进阶操作如下:
dpkg --list | grep linux-imageuname -rsudo apt purge $(dpkg --list | grep linux-image | awk '{print $2}' | grep -v $(uname -r) | grep -v $(dpkg --list | grep linux-image | awk '{print $2}' | sort -V | tail -n 1)) 此命令通过sort -V(版本排序)保留最新的两个内核,避免误删。系统日志(/var/log)会持续增长,尤其是syslog、kern.log等文件。进阶技巧包括:
sudo journalctl --vacuum-time=7d(保留最近7天的日志)sudo journalctl --vacuum-size=500M(限制日志总大小为500MB)sudo truncate -s 0 /var/log/syslog(将syslog文件大小截断为0)sudo find /var/log -type f -name "*.gz" -delete(删除压缩的旧日志备份)系统中的大文件(如视频、ISO镜像、备份文件)往往是磁盘空间的“隐形杀手”。进阶操作如下:
ncdu工具(交互式磁盘分析):sudo apt install ncdu # 安装工具 sudo ncdu / # 扫描根目录,按大小排序,按'd'删除文件 ncdu提供可视化界面,可快速定位大文件和目录,避免手动find命令的繁琐。sudo find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' 此命令可列出所有大于100MB的文件及其大小,方便手动筛选。卸载软件后,系统可能残留孤儿软件包(无依赖的包)和配置文件,这些文件会占用空间且无用。进阶操作如下:
sudo apt install deborphan -y # 安装工具 sudo deborphan | xargs sudo apt purge -y # 删除所有孤儿包 dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P # 删除配置文件 此方法可彻底清理卸载软件后的残留,保持系统整洁。Snap和Flatpak是Ubuntu的常用软件包格式,它们的缓存会占用/var/lib/snapd/cache和~/.local/share/flatpak等目录的空间。进阶操作如下:
sudo snap refresh --list # 查看可更新的Snap包 sudo rm -rf /var/lib/snapd/cache/* # 删除Snap缓存 flatpak uninstall --unused # 删除未使用的运行时 这些操作可释放Snap/Flatpak占用的额外空间。系统内存缓存(Cached)会占用free -m中的“Cached”值,虽然系统会根据需要自动回收,但临时清理可释放内存(适用于内存紧张的场景)。操作如下:
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches sync:将内存中的数据同步到磁盘(避免数据丢失)echo 3:清理页缓存、目录项和inode缓存对于不熟悉命令行的用户,可使用以下图形化工具进行高级清理:
sudo apt install stacer # 安装 stacer # 打开工具 提供“磁盘分析”“进程管理”“软件包清理”等功能,一键扫描并清理系统垃圾。sudo apt install bleachbit # 安装 bleachbit # 打开工具 支持清理缓存、日志、临时文件、浏览器数据等,可选择清理范围(如“系统缓存”“用户缓存”)。/home目录和配置文件(如/etc),防止误删。rm -rf命令前,务必确认目标路径(如/tmp而非/),避免误删系统文件。/usr(系统程序)、/etc(配置文件)、/boot(内核文件),除非明确知道操作内容。