1919_借助于AI生成树莓派瘦身脚本

最近比较流行的人工智能平台DeepSeek、豆包、千问、GLM等等,其实已经出现非常久了。 我之前自己也曾短暂的尝试过,但是那个时候我尝试的时候是用的百度文心,我也不太清楚现在百度的这一个体验能够到了一个什么样的层次。 因为很长的时间里,我发现这样的人工智能在我的工作学习以及生活之中,其实起不到很好的推进作用,因为它的幻觉也比较严重,经常给我错误的答案,即使是让它做个简单的代码,写写脚本之类的。也有可能是错误百出,因此很长的时间之内,我对这种工具还是比较反感的。即使不算是反感,也说不上是有多么大的亲近。

但是人工智能这方面的技术更新迭代实在是太快了,一代更比一代强,而且迭代的速度一天三变化,每天都能够看得到这方面的新闻。 尤其是DeepSeek的横空出世,拿下了那么多评测榜的好成绩,一下子让人觉得国产的大模型似乎是有了更多的期待,而且DeepSeek能够让很多人以非常平价的方式使用上AI的工具,我觉得这是非常好的。 但是之前所谓的这些好不好,我也是只是看看新闻。偶尔自己也当做搜索引擎这么来用一用,真正自己尝试去用还是比较少。

最近这段时间,尝试用DeepSeek写了几个Python脚本,突然之间发现,这东西原来现在已经进化到这么好用了。 接着又尝试写了几段C代码,感觉好像也能够凑合的过去。让它分析一个文件,现在分析的也非常到位。让它尝试给我出一些方案,我发现出的这些方案比我自己能够想象的可能都要优秀。 一下子我觉得这些工具现在原来已经真的可以成为我们工作、学习、生活的加速器了。

于是最近的这两个星期,我在疯狂的恶补这方面工具的使用知识。 之前零零星星的使用的时候,只是给几个提示词,而且还是含含糊糊,并不准确。得到的答案可能也并不是很好,可能是自己之前使用搜索引擎已经习惯了,喜欢输入这样的简单的词,出来大量的资料,然后自己去筛选。 但是到了人工智能的时代。这种资料以及问题查询的方案应该有一个方式上的改变,然而这方面我没有跟得上。

当我看了别人写的学习材料之后,一下子觉得豁然开朗。 最近于是大量的使用DeepSeek来编写我常用的一些脚本,修改我服务系列的一些配置等等,这给了我极好的体验。

我一直有几个小服务器,其中有一个小服务器是一个树莓派。 这个树莓派上其实也没有啥东西,我只是拿来当做一个简单的跳板,在上面做了内网穿透。然后通过它又能够访问家里的其他的机器。这个树莓派也已经好几年没有重启过了,然而这个树莓派的配置非常低。是树莓派3A+,上面我也只用了一个8G的内存卡。 今天通过远程的工具连接查看的时候发现。这个8G的内存卡已经剩下不到10%了,我就想清理一下里面的内容,肯定在软件升级以及日常使用的时候。里面有很多日志,还有很多垃圾文件,还有很多临时的缓冲文件等等,这些都可以清除一下。 于是我就给AI发了一个命令。让它给我写一个清除的脚本,没想到效果异常的好,90%的空间使用率,现在一下子降到了52%。

这一次我用的AI工具是千问,而且是一个在 Cherry Studio 之中免费提供的一个版本,应该不是特别强的一个版本。 但是提供给我的这个答案依旧是非常好的,我觉得我们的确确应该在这个时代尝试去拥抱AI了。

以下是我给AI的提示词,以及我得到的答案。

第一轮提示:树莓派系统清楚不用的安装包

说明:值得注意的是,其实我的第一轮提示都有错别字,但是依然得到了正确的答案。

在树莓派(Raspberry Pi)上清除不需要的安装包,可以释放磁盘空间,提升系统性能。下面是几种常见的方式来进行清理:

---

## 🧹 1. 清除已安装但不再使用的包

### 使用 `apt autoremove` 命令:

```bash
sudo apt update
sudo apt autoremove --purge
```

- `apt update`:更新软件包列表。
- `apt autoremove --purge`:删除所有已安装但不再需要的依赖包(`--purge` 表示彻底删除,包括配置文件)。

---

## 🧹 2. 清除包管理器的缓存

Apt 会缓存下载过的软件包,你可以使用以下命令清除缓存:

```bash
sudo apt clean
```

这个命令会删除 `/var/cache/apt/archives/` 中的包文件。

如果你想清除所有缓存(包括部分下载的包):

```bash
sudo apt autoclean
```

---

## 🧹 3. 清除 `apt` 的元数据缓存

```bash
sudo apt remove --purge apt
sudo apt install --reinstall apt
```

> ⚠️ 不建议轻易删除 `apt`,这可能会影响你的系统功能。一般只是清除缓存。

---

## 🧹 4. 清除已删除程序的残留文件

使用以下命令检查并删除已删除程序的残留文件:

```bash
sudo apt-get autoremove --purge
sudo apt-get clean
```

或者使用更彻底的清理方式:

```bash
sudo apt-get purge $(apt-cache --depends rpi-imager | grep -v ^Depends | grep -v ^Conflicts | grep -v ^PreDepends | awk '{print $1}' | grep -v '^$' | sort | uniq)
```

> 这是一个高级命令,用于清除所有从系统中删除的包的配置文件。请谨慎使用。

---

## 🧹 5. 使用 `deborphan` 工具清理孤立软件包

这是一个第三方工具,可以识别和删除无用的软件包:

### 安装 `deborphan`:

```bash
sudo apt install deborphan
```

### 运行清理命令:

```bash
sudo apt install --reinstall deborphan
sudo deborphan --guessdeps --verbose | sudo xargs apt remove --purge
```

这个命令会列出所有孤立的包并删除它们。

---

## 🧹 6. 清理 `/tmp` 和其他临时文件夹

```bash
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
sudo rm -rf /root/.cache/*
```

---

## 🧹 7. 查看磁盘使用情况(可选)

你可以使用 `du` 或 `df` 命令查看哪些文件占用了大量空间:

```bash
df -h
du -sh /var/cache
du -sh /home
```

---

## 🧹 8. 清理已安装的 `.deb` 文件

如果你手动安装了 `.deb` 包,可以使用以下命令清理:

```bash
sudo apt-get remove --purge <package-name>
```

或者删除整个 `/var/cache/apt/archives/` 文件夹:

```bash
sudo rm -rf /var/cache/apt/archives/*
```

---

## ✅ 总结清理步骤(推荐)

```bash
sudo apt update
sudo apt autoremove --purge
sudo apt clean
sudo apt autoclean
sudo deborphan --guessdeps --verbose | sudo xargs apt remove --purge
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
```

这些命令能有效清理系统中的无用安装包和缓存。

---

## 💡 小提示

- 在清理前,建议使用 `apt list --upgradable` 查看是否还有未升级的包。
- 如果你不确定某个包是否是“无用”的,建议不要擅自删除,以免影响系统运行。
- 如果你使用的是 **Raspberry Pi OS Lite**,它本来就是精简版,不需要那么多软件,所以清理空间不会太大问题。

---

如果你告诉我你使用的是哪个版本的树莓派系统(如 Raspberry Pi OS Desktop、Raspberry Pi OS Lite,或者其他发行版),我可以提供更具体的建议 😊

上面给出来的答案太零散,我懒得去逐个看,于是给了第二轮提示:帮我写一个脚本,能够一次性做最大的尝试把磁盘空间尽可能的释放一下。

得到了如下的回答:

当然可以!下面是一个 **自动清理树莓派系统磁盘空间的脚本**,它尽可能多地删除无用的安装包、缓存、日志、临时文件等,通常适用于 **Raspberry Pi OS(Debian 基础)**,包括 **Raspberry Pi OS Desktop** 和 **Raspberry Pi OS Lite**。请确保你了解清理内容,避免误删重要程序。

---

## ✅ 脚本说明

这个脚本会执行以下操作:

- 更新包列表
- 删除无用的依赖包(`autoremove`)
- 清除 APT 缓存
- 清理 `/tmp`、`/var/tmp` 和 `.cache` 临时文件
- 清理日志文件(如 `log` 目录和 `journalctl`)
- 删除无用的软件包(使用 `deborphan`)
- 清理用户缓存 (`~/.cache`)
- 禁用不必要的服务(可选,需手动确认)

---

## 📝 脚本内容

```bash
#!/bin/bash

# 清理磁盘空间脚本
# 适用于 Raspberry Pi OS (Debian-based)

# 检查是否以 root 权限运行
if [ "$(whoami)" != "root" ]; then
echo "错误:请以 root 或 sudo 权限运行此脚本"
exit 1
fi

echo "🔄 正在更新软件包列表..."
sudo apt update

# 1. 删除不再需要的依赖包
echo "🗑️ 删除已安装但不再需要的依赖..."
sudo apt autoremove --purge -y

# 2. 清除 APT 缓存
echo "📦 清除 APT 软件包缓存..."
sudo apt clean
sudo apt autoclean -y

# 3. 清理 /tmp 和 /var/tmp
echo "🗑️ 清理临时文件夹..."
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

# 4. 清理用户缓存(此部分会删除当前用户 ~/.cache)
echo "🗑️ 清理当前用户缓存文件..."
rm -rf ~/.cache/*

# 5. 清理日志
echo "🗑️ 清理系统日志文件..."
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
sudo journalctl --vacuum-size=100M # 保留 100MB 的日志
sudo rm -rf /var/log/apt/term/* # APT 日志

# 6. 删除无用的软件包(使用 deborphan)
echo "🔍 清理孤立或无用的软件包..."
sudo apt install deborphan -y
sudo deborphan --guessdeps --verbose | sudo xargs apt remove --purge -y

# 7. 清理旧内核镜像(如果安装了旧内核)
echo "📦 清理旧内核镜像..."
sudo apt remove --purge linux-image-$(uname -r | sed 's/\([0-9]\{1,\}\)\.\([0-9]\{1,\}\)\.\([0-9]\{1,\}\)/\1_\2_\3/g')-generic
sudo apt purge $(apt-cache --no-parent --regexp 'linux-image-.*-generic' | grep -v ^Depends | grep -v ^Conflicts | grep -v ^PreDepends | awk '{print $1}' | sort | uniq)
sudo apt autoremove -y

# 8. 删除 .deb 安装包缓存(手动安装的 .deb 包)
echo "📦 清理手动安装的 .deb 软件包缓存..."
sudo rm -rf /var/cache/apt/archives/*

# 9. 清理 library 缓存(适用于桌面系统)
echo "📦 清理 lib 动态库缓存..."
sudo apt --purge remove manpages-dev manpages libgl1 libglib2.0-0 libgtk-3-0 xserver-xorg-core xserver-xorg -y
sudo apt autoremove -y

# 10. 删除老旧的终端记录
echo "🗑️ 清理终端历史记录..."
sudo rm -rf /var/log/dpkg.log*
sudo truncate -s 0 /var/log/dpkg.log

# 11. 清理 apt 获取的日志
echo "📦 清理 APT 获取日志..."
sudo rm -rf /var/log/apt/*

# 12. 清理回收站(即 .Trash-xxxxx 目录)
echo "🗑️ 清空回收站..."
rm -rf ~/.Trash/*

# 13. 清理 Snap、Flatpak、Docker 等(如果安装了)
# 注意:请确认你的系统是否安装了这些,并确保不会影响使用
echo "📦 清理 Snap、Flatpak 和 Docker 相关文件(可选)..."
if [ -d "/var/lib/snapd" ]; then
sudo snap remove --purge --all
fi

if [ -d "/var/lib/flatpak" ]; then
flatpak uninstall --all --trash
fi

# 14. 清理自动保存的屏幕截图和桌面文件
echo "🗑️ 清理自动保存的截图和桌面文件..."
sudo rm -rf /home/pi/.cache/screenshots/*
sudo rm -rf /home/pi/.cache/icons/*
sudo rm -rf /home/pi/.cache/clipboard/*

# 15. 清理 /home 目录中的冗余文件
echo "🧹 清理 home 目录中的冗余文件..."
sudo find /home -type f -name "*.log" -exec truncate -s 0 {} \;
sudo find /home -type f -name "*.tmp" -delete

# 16. 释放交换分区空间(可选,适用于桌面系统)
# 可以卸载交换文件(如果使用的是 swapfile)并重新创建
echo "🔄 释放交换空间(仅对桌面系统)..."
sudo swapoff /swapfile
sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 17. 清理系统臃肿文件(如 /usr/share/locale、/usr/share/man 等)
# 可以选择性删除,对于 Lite 版本可以安全删除
echo "📦 清理系统中冗余语言和文档文件(可选)..."
sudo apt --purge remove locales-all manpages-dev -y
sudo apt autoremove -y

# 18. 检查磁盘空间
echo "📊 检查清理后的磁盘空间..."
df -h

# 完成提示
echo "🎉 清理完成!如果还有空间不足的情况,请检查是否有大文件占用空间。"
```

---

## 🚀 如何使用

1. 将上面的脚本内容保存为文件,比如 `cleanup_raspberry_pi.sh`
2. 赋予执行权限:

```bash
chmod +x cleanup_raspberry_pi.sh
```

3. 运行脚本:

```bash
sudo ./cleanup_raspberry_pi.sh
```

---

## ⚠️ 注意事项

- 请确保你了解各命令的作用,特别是涉及**删除库和依赖**的部分。误删可能导致系统异常。
- `deborphan` 是一个第三方工具,清理前请确认你不需要这些软件。
- 如果你使用的是 **Raspberry Pi OS Desktop**,可能还会保留一些图形界面软件,可以根据需要裁剪。
- 在运行 `sudo apt remove --purge` 时,`-y` 表示自动确认,避免不必要操作中断。
- 如果你使用的是 **Raspberry Pi OS Lite**,可能不需要清理很多图形界面相关的包,可以根据需要简化脚本。

---

## 🧰 可选扩展(高级用户)

你也可以根据自己的需要添加以下清理项:

- 清理 `/opt` 目录中不再使用的文件:

```bash
sudo rm -rf /opt/*/
```

- 清理 `~/.mozilla`, `~/.wine` 等用户配置目录(如果使用过):

```bash
rm -rf ~/.mozilla
rm -rf ~/.wine
```

---

如果你想要一个 **更轻量的版本**(比如适用于 RPi OS Lite),我可以帮你精简这个脚本。需要吗?