温馨提示×

怎样清理Linux软件缓存

小樊
33
2026-08-28 14:39:08
栏目: 智能运维

在 Linux 中,“软件缓存”通常指 包管理器缓存、应用缓存、系统缓存 等,不同对象清理方式不同。下面按常见场景给你一份实用清单,可以直接按需使用。


一、清理包管理器缓存(最常见)

✅ APT(Ubuntu / Debian)

sudo apt clean            # 删除所有已下载的 .deb 包
sudo apt autoclean       # 只删除过期包
sudo apt autoremove      # 删除无用依赖

查看缓存位置:

ls /var/cache/apt/archives

✅ YUM(CentOS 7 / RHEL 7)

sudo yum clean all

✅ DNF(CentOS 8+ / Fedora / RHEL 8+)

sudo dnf clean all

✅ Pacman(Arch / Manjaro)

sudo pacman -Sc        # 清理未安装包缓存
sudo pacman -Scc       # 清理所有缓存(慎用)

缓存目录:

/var/cache/pacman/pkg/

二、清理系统缓存(内存 / 临时文件)

✅ 清理内存缓存(PageCache / dentries / inodes)

⚠️ 生产环境慎用

sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

解释:

  • 1:PageCache
  • 2:目录项和 inode
  • 3:全部

✅ 清理 /tmp 临时文件

sudo rm -rf /tmp/*

或重启(系统会自动清理)


三、清理用户与应用缓存

✅ 用户缓存目录

rm -rf ~/.cache/*

常见可清理:

  • ~/.cache/
  • ~/.npm/
  • ~/.m2/
  • ~/.gradle/
  • ~/.cargo/
  • ~/.local/share/Trash/

✅ 浏览器缓存(示例)

rm -rf ~/.cache/google-chrome
rm -rf ~/.cache/mozilla

四、清理日志缓存(Journal / log)

✅ systemd 日志

journalctl --disk-usage
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d

✅ 删除旧日志

sudo rm -rf /var/log/*.log.*
sudo rm -rf /var/log/old/*

五、清理 Docker 缓存(如使用 Docker)

docker system df
docker system prune
docker system prune -a

六、查看磁盘占用(找出“谁在占空间”)

df -h
du -sh /*
du -sh ~/.* | sort -h

七、一键清理脚本(示例)

#!/bin/bash
sudo apt clean
sudo apt autoremove -y
rm -rf ~/.cache/*
sudo journalctl --vacuum-size=200M

八、注意事项(很重要)

✅ 不建议:

  • 删除 /var/cache 整个目录
  • 在生产服务器随意 clean all
  • 直接 rm -rf /var/*

✅ 建议:

  • df -h 看瓶颈
  • 清理前确认目录用途
  • 使用包管理器自带清理命令

如果你愿意,可以告诉我:

  • 你用的是 Ubuntu / CentOS / Arch / 其他?
  • 桌面还是服务器?
  • 想清理的是 软件包 / Docker / 系统缓存 / 某个软件?

我可以给你精确到命令的方案。

0