一、磁盘查看类(定位空间占用)
1. df -h
- 命令:
df -h - 字母含义:
d= disk(磁盘)f= free(空闲)-h= human-readable(以 GB/MB 显示,而非原始字节)
- 作用:查看系统各分区的总容量、已用、可用、使用率,快速定位哪个分区满了。
2. du -h --max-depth=1 2>/dev/null | sort -hr
- 命令:
du -h --max-depth=1 2>/dev/null | sort -hr - 字母 / 参数含义:
d= disk(磁盘)u= usage(占用)-h= human-readable(显示为 GB/MB)--max-depth=1:只查看当前目录下的一级子目录,不递归深入2>/dev/null:将错误信息(如权限不足)丢弃,只显示有效结果|:管道符,把前一个命令的输出传给后一个命令sort:排序-h:让 sort 识别 GB/MB 单位并正确排序-r= reverse(反向,从大到小排序)
- 作用:查看当前目录下,各子目录的占用大小,按从大到小排序,快速找到 "元凶" 目录。
二、安全清理类(释放磁盘空间)
1. 清理 APT 包缓存
-
命令: bash
运行
sudo apt clean sudo apt autoremove -y -
含义:
apt:Debian/Ubuntu 包管理工具clean:清理所有已下载的.deb安装包缓存autoremove:卸载不再被依赖的无用软件包-y:自动确认所有操作,无需手动输入Y
-
作用:清理系统软件缓存,通常可释放 1-3GB 空间。
2. 清理系统日志(最有效)
- 命令:
sudo journalctl --vacuum-size=100M - 含义:
journalctl:systemd 日志管理工具--vacuum-size=100M:将所有系统日志的总大小限制在 100MB 以内
- 作用:清理系统日志,解决日志爆炸式增长问题,通常可释放 5-10GB 空间。
3. 清理临时文件
- 命令:
sudo rm -rf /tmp/* - 含义:
rm= remove(删除)-r= recursive(递归删除目录下所有文件)-f= force(强制删除,不提示)/tmp/*:系统临时目录下的所有文件
- 作用:清理系统临时文件,这些文件重启后也会被清理,手动清理安全无风险。
4. 清理 /var/cache/apt 缓存
- 命令:
sudo rm -rf /var/cache/apt/archives/* - 含义:删除 APT 工具下载的软件包缓存。
- 作用:进一步释放包缓存占用的空间,与
apt clean效果一致。
5. 清理崩溃日志
- 命令:
sudo rm -rf /var/crash/* - 含义:删除系统崩溃时生成的错误报告文件(通常体积很大)。
- 作用:清理无用的崩溃日志,释放空间。
6. 清理 Snap 包旧版本
- 命令:
sudo snap set system refresh.retain=2 - 含义:设置 Snap 包只保留最新的 2 个版本,自动删除旧版本。
- 作用:解决 Snap 包多版本占用空间的问题。
三、高级 / 可选清理(如使用 Docker)
命令:sudo docker system prune -a
- 含义:
docker system prune:清理 Docker 无用资源-a:清理所有未使用的镜像、容器、网络、卷(除正在运行的容器外)
- 作用:释放 Docker 占用的磁盘空间,通常可释放 3-20GB 不等。
四、关键注意事项
-
绝对禁止删除的目录:
/dev:设备目录,存放硬件接口文件,删除会直接导致系统崩溃。/bin//sbin//etc//usr:系统核心目录,删除会导致系统无法启动。/var/lib:存放系统服务数据(如数据库、Docker 数据),删除会导致数据丢失。
-
只可清理内容,不可删除目录本身:
/var/log、/var/cache等目录,只能删除目录下的文件,不能删除目录本身,否则系统会报错。
-
操作前备份:重要数据建议先备份或创建虚拟机快照,避免误操作导致数据丢失。
附:一键安全清理脚本(可直接复制)
运行
#!/bin/bash
# 一键安全清理脚本(适用于 Ubuntu/Debian)
echo "=== 开始清理系统空间 ==="
# 1. 清理 APT 缓存
echo "清理 APT 缓存..."
sudo apt clean -y
sudo apt autoremove -y
# 2. 清理系统日志
echo "清理系统日志..."
sudo journalctl --vacuum-size=100M
# 3. 清理临时文件
echo "清理临时文件..."
sudo rm -rf /tmp/*
# 4. 清理崩溃日志
echo "清理崩溃日志..."
sudo rm -rf /var/crash/*
# 5. 清理 Snap 旧版本
echo "清理 Snap 旧版本..."
sudo snap set system refresh.retain=2
echo "=== 清理完成!当前磁盘使用情况: ==="
df -h
保存为 clean_disk.sh,执行 chmod +x clean_disk.sh 赋予执行权限,即可一键运行。