Ubuntu系统瘦身实战:精准定位并清理八大空间占用源
1. 空间侦探:快速定位Ubuntu磁盘空间元凶
刚装完系统时Ubuntu跑得飞快,用着用着就开始卡顿?打开文件管理器一看,红色警告条赫然显示"磁盘空间不足"。别急着买新硬盘,跟着我一步步揪出那些偷偷吃掉空间的"大胃王"。
图形化侦查利器:在Ubuntu 18.04及以上版本,点击左下角"显示应用程序"→"工具"→"Disk Usage Analyzer"(中文叫"磁盘用量分析器"),这个可视化工具会用彩色块直观展示各目录占用比例。我习惯先看/home和/var这两个重灾区,它们经常藏着意想不到的空间杀手。
终端高手专用:打开终端输入baobab也能启动图形工具。更硬核的做法是用du -sh *命令层层排查:
cd / # 切换到根目录 du -sh * | sort -h # 按人类可读格式排序最近帮同事排查时,发现他的/var目录居然占了120GB,用这个命令最终锁定是Docker容器日志疯狂增长。
进阶技巧:ncdu工具比原生命令更强大,安装后运行:
sudo apt install ncdu ncdu / # 扫描整个根目录它能交互式浏览目录,按大小排序,直接删除文件(谨慎操作!)。上周我用它在一个月没清理的服务器上腾出47GB空间。
2. 系统日志清理:从GB到MB的魔法
/var/log/journal/里的系统日志就像不会自动删除的监控录像,我的生产服务器曾因日志堆积导致根目录爆满。用这三个命令掌握日志生杀大权:
查看当前日志体积:
journalctl --disk-usage典型输出:Journals take up 1.7G in the file system.
时间剪刀手(保留最近7天):
sudo journalctl --vacuum-time=7d空间剪刀手(限制最大500MB):
sudo journalctl --vacuum-size=500M紧急清场(慎用!):
sudo rm -rf /var/log/journal/* sudo systemctl restart systemd-journald注意:关键生产环境建议保留至少1周日志。我曾误删全部日志后遇到故障,排查时追悔莫及。
3. 缓存大扫除:缩略图与包缓存的清理
~/.cache就像浏览器的临时文件夹,里面藏着各种缓存:
缩略图清理:
du -sh ~/.cache/thumbnails # 先查看大小 rm -rf ~/.cache/thumbnails/* # 清空我的笔记本上这个目录曾积累3.2GB缩略图,清理后系统响应明显加快。
APT包缓存:
sudo apt clean # 清空下载的.deb安装包 sudo apt autoclean # 只删除旧版本包最近升级到Ubuntu 24.04后,/var/cache/apt/archives里残留的旧版包吃掉了5GB空间。
虚拟机特别提示:VMware用户记得清理拖放缓存:
rm -rf ~/.cache/vmware/drag_and_drop/*4. 旧内核清理:给/boot分区瘦身
Ubuntu自动更新会保留旧内核,导致/boot分区爆满。按这个安全流程操作:
第一步:确认当前内核(千万别删错!)
uname -r # 输出示例:5.15.0-78-generic第二步:列出所有内核:
dpkg --list | grep linux-image第三步:安全删除旧内核(保留最近2个版本):
sudo apt purge linux-image-5.15.0-{72,74}-generic最后更新引导:
sudo update-grub我见过最夸张的案例是/boot被30多个旧内核塞满,清理后腾出1.8GB空间。建议设置自动清理:
sudo apt-mark auto 'linux-image-*' # 标记为自动卸载 sudo apt autoremove # 自动移除无用包5. VSCode缓存清理:IPCH文件的末日
开发者注意!VSCode的C++插件会生成巨大的IPCH缓存:
定位缓存位置:
du -sh ~/.cache/vscode-cpptools/ipch/我的一个项目缓存竟然达到12GB,相当于项目代码的60倍!
永久解决方案:修改VSCode设置
- 按
Ctrl+,打开设置 - 搜索
C_Cpp.intelliSenseCacheSize - 将默认值
5120改为512(单位MB)
紧急清理:
rm -rf ~/.cache/vscode-cpptools/ipch/*注意:删除后首次打开项目会稍慢,因为要重建缓存。
6. Conda环境清理:科学计算的存储陷阱
Anaconda/Miniconda的pkgs目录是隐形空间杀手:
查看缓存大小:
du -sh ~/anaconda3/pkgs/安全清理四连击:
conda clean -p # 删除无用包 conda clean -t # 删除tar压缩包 conda clean -a # 强力模式 conda clean --packages # 删除孤立包预防性建议:
conda config --set auto_clean_pkgs True # 开启自动清理我的深度学习环境经过这样清理,从87GB缩减到34GB。
7. Snap应用清理:沙盒的存储代价
Snap应用的只读设计导致空间无法自动回收:
查看Snap占用:
du -sh /var/lib/snapd/彻底卸载(谨慎操作):
sudo apt autoremove --purge snapd折中方案:只清理旧版本
sudo snap set system refresh.retain=2 # 只保留2个版本 sudo snap refresh # 触发清理8. Pip缓存清理:Python开发者的隐藏账单
Python包的缓存可能悄无声息占满空间:
查看缓存:
ls ~/.cache/pip/清理命令:
rm -rf ~/.cache/pip/*永久配置:在~/.config/pip/pip.conf添加:
[global] no-cache-dir = true记得定期运行pip cache purge。上次清理为我省出6GB空间,足够安装三个新虚拟环境。