在清理缓存前,建议先通过以下命令了解系统内存使用情况,确认是否需要清理:
free -h:以易读格式(GB/MB)显示内存总量、已用内存、空闲内存及缓存(buffers/cache)占用情况。vmstat 1:每秒更新一次系统虚拟内存统计信息,包括内存使用、进程状态、缓存变化等。top/htop:实时显示进程内存占用排名,帮助识别内存消耗大的进程(如htop需安装,命令:sudo apt install htop)。页面缓存用于加速文件读取,清理后系统会重新从磁盘加载常用文件到缓存。
命令:
sudo sync && sudo echo 1 > /proc/sys/vm/drop_caches
sync:将未写入磁盘的缓存数据同步到磁盘,避免数据丢失。echo 1 > /proc/sys/vm/drop_caches:仅清理页面缓存。目录项缓存(dentry)和inode缓存用于加速文件查找(如ls、cd命令),清理后可释放用于存储文件路径和索引的内存。
命令:
sudo sync && sudo echo 2 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches:仅清理dentry和inode缓存。若需一次性清理所有类型的缓存,可使用以下命令:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches:同时清理页面缓存、dentry缓存和inode缓存(最常用)。包管理器的缓存(如APT、YUM)会存储下载的安装包,长期积累会占用大量磁盘空间:
sudo apt-get clean # 清理所有下载的安装包
sudo apt-get autoclean # 清理旧的安装包(仅保留当前版本的缓存)
sudo yum clean all # 清理YUM缓存(包括下载的安装包、元数据)
sudo dnf clean all # 清理DNF缓存(Fedora/RHEL 8+)
用户主目录下的缓存文件(如浏览器缓存、应用程序临时文件)也会占用空间:
sudo rm -rf /tmp/* # 清理系统临时目录(需root权限)
rm -rf ~/.cache/* # 清理当前用户的缓存(如浏览器、软件缓存)
rm -rf ~/.local/share/Trash/* # 清理回收站的文件
sudo apt install bleachbitsudo yum install bleachbitsudo add-apt-repository ppa:gerardpuig/ppa
sudo apt update
sudo apt install ubuntu-cleaner
若需定期自动清理缓存,可将命令添加到cron作业中:
crontab:sudo crontab -e0 2 * * * root sync && echo 3 > /proc/sys/vm/drop_caches
sync命令可避免数据丢失,但仍需避免在文件写入过程中清理缓存(如数据库备份时)。/etc/sysctl.conf文件,添加对应参数(如vm.drop_caches=3),然后执行sudo sysctl -p生效(需谨慎,可能影响系统性能)。