Linux系统清理隐藏技巧
APT包管理器会缓存下载的软件包(位于/var/cache/apt/archives/),占用大量磁盘空间。使用sudo apt-get clean可彻底清空缓存,释放空间。若需保留最近下载的包(用于重装软件),可使用sudo apt-get autoclean仅删除旧版本缓存。
Yum(CentOS 7及以下)或Dnf(CentOS 8及以上)会缓存软件包元数据和下载的包文件。使用sudo yum clean all(CentOS 7及以下)或sudo dnf clean all(CentOS 8及以上)可清理所有缓存,包括元数据和包文件。
系统升级后会保留旧内核,占用/boot分区空间。通过dpkg --list | grep linux-image(Debian/Ubuntu)或rpm -qa | grep kernel(CentOS/RHEL)列出已安装内核,卸载不再需要的旧内核(保留当前使用的版本)。例如,Debian/Ubuntu下使用sudo dpkg -r linux-image-<version>,CentOS下使用sudo rpm -e kernel-<version>。
Docker容器、镜像和卷会占用大量磁盘空间。使用docker system df查看资源占用情况,通过docker container prune(清理停止的容器)、docker image prune(清理未使用的镜像)、docker volume prune(清理未使用的卷)释放空间。
使用du -sh /* | sort -rh | head -n 10查看根目录下占用空间最大的10个目录,定位大文件或目录。进一步使用find / -type f -size +100M -exec ls -lh {} \;查找系统中大于100MB的文件,确认后删除无用文件。
系统日志(/var/log/)会持续增长,占用大量空间。使用sudo journalctl --vacuum-time=2weeks清理2周前的journal日志,或使用truncate -s 0 /var/log/<log_file>清空特定日志文件(如syslog、auth.log)。定期执行logrotate(sudo logrotate /etc/logrotate.conf)可自动轮转和压缩日志。
用户主目录下的.cache目录(如~/.cache/)存储了应用程序的缓存文件(如浏览器、终端、软件包管理器),占用大量空间。使用rm -rf ~/.cache/*清空缓存,或使用ncdu ~/.cache(需安装ncdu)交互式查看并删除缓存文件。
用户主目录下的.local/share/Trash/目录是回收站的存储位置,包含已删除但未彻底清除的文件。使用rm -rf ~/.local/share/Trash/*清空回收站,释放空间。
系统临时文件(/tmp/、/var/tmp/)通常存储临时数据,可安全删除。使用sudo rm -rf /tmp/*清空/tmp目录,sudo rm -rf /var/tmp/*清空/var/tmp目录。注意:部分程序可能在/var/tmp/中存储需要保留的临时文件,删除前需确认。
ncdu(NCurses Disk Usage)是一款交互式磁盘使用分析工具,可直观显示目录和文件的大小,帮助快速定位大文件或目录。安装后(sudo apt-get install ncdu/sudo yum install ncdu),运行sudo ncdu /即可扫描根目录,通过方向键导航,按d键删除文件或目录。