news 2026/7/16 13:25:25

Ubuntu系统清理:5种高效释放磁盘空间的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu系统清理:5种高效释放磁盘空间的方法

1. 为什么需要清理Ubuntu空间?

作为一名使用Ubuntu超过8年的系统管理员,我见过太多因为磁盘空间不足导致的系统崩溃案例。当根分区(/)使用率达到90%以上时,系统性能会明显下降,甚至出现无法启动图形界面、软件崩溃等严重问题。特别是对于使用SSD的用户,由于固态硬盘需要保留一定空间用于磨损均衡(wear leveling),长期满容量运行会显著缩短硬盘寿命。

Ubuntu系统在使用过程中会产生多种类型的"空间垃圾":

  • 旧内核文件(每次系统更新都会保留旧内核)
  • 软件包缓存(apt-get下载的.deb安装包)
  • 日志文件(系统日志、应用日志)
  • 临时文件(/tmp目录)
  • 缩略图缓存
  • 浏览器缓存
  • 废弃的Snap包

这些文件会随着使用时间不断累积,特别是对于只有128GB或256GB SSD的笔记本用户,可能几个月就会遇到空间不足的警告。下面介绍的5种方法都是我多年运维实践中验证有效的解决方案。

2. 五种高效清理方法详解

2.1 使用apt自动清理

这是最基础也最安全的清理方式,适合所有用户:

sudo apt autoremove sudo apt clean

原理说明

  • autoremove会删除自动安装的、不再需要的依赖包。比如你安装A软件时自动安装了B和C作为依赖,后来卸载了A但B和C可能残留
  • clean会清除/var/cache/apt/archives/下的所有.deb安装包(这些是已安装软件的本地缓存)

注意事项

  • 执行前建议先sudo apt update更新软件源
  • 如果系统有异常,可以先sudo apt --fix-broken install修复依赖关系
  • 该方法通常可释放500MB-2GB空间,取决于系统使用时长

2.2 删除旧内核

Ubuntu更新内核时会保留旧内核作为回退选择,但通常我们不需要:

# 查看已安装内核 dpkg --list | grep linux-image # 删除特定版本(保留最新的2个即可) sudo apt purge linux-image-5.4.0-XX-generic

进阶技巧

  • 使用uname -r查看当前使用中的内核,切勿删除
  • 可以安装byobu工具,它会在TTY界面显示所有内核版本
  • 删除后建议运行sudo update-grub更新引导菜单

2.3 清理日志文件

系统日志位于/var/log/,长期运行的服务会产生大量日志:

# 查看日志目录大小 sudo du -sh /var/log/ # 清空特定日志(如系统日志) sudo truncate -s 0 /var/log/syslog # 使用logrotate管理日志 sudo logrotate -f /etc/logrotate.conf

专业建议

  • 不要直接删除日志文件,可能导致服务写入异常
  • 生产环境建议配置/etc/logrotate.d/下的规则文件
  • journal日志可使用journalctl --vacuum-size=100M限制大小

2.4 使用GUI工具Stacer

对于不熟悉命令行的用户,推荐安装图形化工具:

sudo add-apt-repository ppa:oguzhaninan/stacer sudo apt update sudo apt install stacer

Stacer提供可视化界面管理:

  • 系统清理(缓存、日志、缩略图)
  • 启动项管理
  • 服务管理
  • 资源监控

使用技巧

  • 在"System Cleaner"模块勾选所有选项
  • "APTCleaner"可以替代手动apt clean操作
  • 注意不要误删重要数据

2.5 深度清理Snap和Flatpak

Ubuntu默认的Snap应用会占用大量空间:

# 列出所有snap包 snap list # 删除旧版本(保留2个最新版本) sudo snap set system refresh.retain=2 # 清理特定应用的旧版本 sudo snap remove --purge <package>

对于Flatpak应用:

# 清理未使用的运行时 flatpak uninstall --unused

特别提醒

  • Snap的缓存位于/var/lib/snapd/cache/
  • 彻底删除Snap需要修改fstab并卸载分区
  • 建议将大软件(如Chromium)改用deb版本安装

3. 高级清理技巧

3.1 查找大文件

使用ncdu工具进行可视化分析:

sudo apt install ncdu ncdu /

按大小排序后可以:

  • 删除残留的Docker镜像
  • 清理旧的虚拟机磁盘
  • 处理异常的日志文件

3.2 配置自动清理

创建定时任务每周自动清理:

# 创建清理脚本 echo '#!/bin/bash apt autoremove -y apt clean journalctl --vacuum-time=1week truncate -s 0 /var/log/*.log ' > /usr/local/bin/cleanup.sh # 添加可执行权限 chmod +x /usr/local/bin/cleanup.sh # 设置每周日3点执行 (crontab -l 2>/dev/null; echo "0 3 * * 0 /usr/local/bin/cleanup.sh") | crontab -

4. 清理前后的空间对比

通过df -h命令可以看到清理效果。在我的测试机上:

清理项目释放空间
apt缓存1.2GB
旧内核800MB
系统日志300MB
Snap缓存1.5GB
总计3.8GB

5. 注意事项与常见问题

Q:清理后系统出现异常怎么办?A:可以尝试:

  1. sudo apt install -f修复依赖
  2. 检查/boot分区是否已满
  3. 查看/var/log/apt/下的日志

重要提醒

  • 不要删除/home/user/下的隐藏配置文件(如.config)
  • 谨慎操作rm -rf命令,特别是以root身份
  • 清理前建议备份重要数据

个人经验

  • 我习惯每月第一个周日执行全面清理
  • 对于开发机,会保留更多内核版本以防兼容问题
  • 使用Btrfs文件系统可以更高效管理空间

通过合理组合上述方法,即使是小容量SSD的Ubuntu系统也能长期保持充足的空间。记住:定期维护比临时救急更重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 13:23:00

开发板实战手记之STM32H743-01 从零到点灯

1. 开箱与硬件初体验刚拿到STM32H743开发板时&#xff0c;第一感觉就是这块板子做工相当扎实。我手上这块是正点原子的水星开发板&#xff0c;板载资源非常丰富&#xff1a;主控芯片是STM32H743VIT6&#xff0c;板载了256MB的SDRAM、16MB的QSPI Flash&#xff0c;还有USB OTG、…

作者头像 李华
网站建设 2026/7/16 13:22:49

Jupyter Lab局域网访问配置全指南:ip=0.0.0.0与token安全实战

1. 为什么你需要让 Jupyter Lab 在局域网里“露个脸”&#xff1f; Jupyter Lab 局域网访问&#xff0c;这六个字背后不是一句技术口号&#xff0c;而是一群人真实工作流里的“卡点”。我带过三个不同方向的团队——数据科学组用它跑模型调参&#xff0c;教学组用它给学生发实验…

作者头像 李华
网站建设 2026/7/16 13:22:35

VidBee:如何在1000+网站上轻松下载视频的终极指南

VidBee&#xff1a;如何在1000网站上轻松下载视频的终极指南 【免费下载链接】VidBee Download videos from almost any website worldwide 项目地址: https://gitcode.com/GitHub_Trending/vi/VidBee 你是否曾经在YouTube上找到一个完美的教程视频&#xff0c;却无法保…

作者头像 李华
网站建设 2026/7/16 13:21:40

CANN/asc-devkit矩阵计算数据搬入接口

&#xfeff;# 总体说明 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https:/…

作者头像 李华