Ubuntu系统目录架构是怎么样的
一、问题和需求
我们使用完服务器后,需要清理很多之前测试过程中用到的东西。比如数据库卸载,还有自己上传的安装包什么的。那么如何对Ubuntu系统进行深度清洗,不会误删系统的文件。
二、Linux目录系统
目录系统如下
/
├── bin # 基本用户命令二进制文件存放目录,如 ls、cp、cat 等
├── boot # 系统引导文件和内核镜像存放目录,如 GRUB、vmlinuz
├── dev # 设备文件目录,系统用于识别硬件设备,如 /dev/sda
├── etc # 系统及应用程序的全局配置文件目录
│ ├── passwd # 用户账户信息文件
│ ├── shadow # 加密后的用户密码文件
│ ├── fstab # 文件系统静态信息,用于定义磁盘挂载
│ ├── hostname # 系统主机名配置文件
│ └── hosts # 本地主机名解析文件
├── home # 普通用户的家目录所在地
│ └── user1 # 特定用户 'user1' 的个人目录,存放其私人文件和配置
├── lib # 系统最基本的共享库文件和内核模块
├── media # 可移动媒体设备(如 U 盘、光盘)的默认挂载点
├── mnt # 临时手动挂载文件系统的挂载点
├── opt # 可选(Optional)应用程序软件包,通常用于安装第三方大型软件
├── proc # 虚拟文件系统,提供内核和进程信息的接口
├── root # 超级用户 root 的家目录
├── run # 自系统启动以来运行中的进程的临时数据(如 PID 文件)
├── sbin # 系统管理命令二进制文件存放目录,主要为 root 用户使用
├── srv # 服务(Service)数据目录,存放特定服务提供的数据
├── sys # 虚拟文件系统,用于与内核交互及配置硬件设备
├── tmp # 临时文件目录,所有用户均可使用,重启后内容通常清除
├── usr # 用户(User)程序资源二级目录,包含大量用户应用程序和文件
│ ├── bin # 绝大多数用户命令的二进制文件
│ ├── sbin # 非关键的系统管理命令二进制文件
│ ├── lib # /usr/bin 和 /usr/sbin 中程序的共享库
│ └── local # 本地安装的软件,通常由系统管理员编译或安装
└── var # 动态变化(Variable)数据文件目录,如日志、缓存、数据库文件├── log # 系统及应用程序日志文件 │ ├── messages # 通用系统消息日志 │ └── syslog # 系统日志,记录核心和应用程序信息 ├── spool # 排队任务的数据,如打印队列、邮件、定时任务 (cron) └── tmp # 在系统重启期间得以保留的临时文件
谨慎操作:对 /bin
, /boot
, /etc
, /lib
, /sbin
等系统核心目录进行操作时需格外小心,误删文件可能导致系统无法启动或运行异常
理解 Linux 的目录结构
目录 | 主要用途 | 是否可清理 |
---|---|---|
/bin | 存放系统最基本命令,如 | ❌ 不可清理,否则系统基本命令会失效。 |
/boot | 存放系统引导文件和内核镜像 | ⚠️ 谨慎清理,只能使用 |
/etc | 存放系统全局配置文件 | ❌ 不可清理,但可查看并清理自己安装服务的冗余配置。 |
/home | 存放用户个人文件和配置 | ⭐ 重点清理对象,可安全删除用户目录下的测试文件、缓存等。 |
/opt | 存放许多第三方应用程序 | ⭐ 重点清理对象,可安全卸载或删除于此安装的第三方软件。 |
/root | 系统管理员 root 的主目录 | ⭐ 可清理,注意辨别是否为重要文件。 |
/tmp | 存放临时文件,系统重启后内容通常会被清除 | ⭐ 可清理,但注意是否有重要临时文件。 |
/usr | 存放用户级别的应用程序和文件 | ⚠️ 谨慎清理,通常通过包管理器管理。 |
/var | 存放经常变化的文件,如日志、缓存等 | ⭐ 重点清理对象,可安全清理其中的日志、缓存文件。 |
/lib | 存放系统运行时所需的共享库文件和内核模块 | ❌ 不可清理,否则可能导致软件或系统无法运行。 |
三、具体清理
3.1、清理 APT 缓存
APT 包管理器会保留下载的 .deb
软件包,这些文件在软件安装后通常就不需要了。
sudo apt clean # 清理所有已下载的安装包缓存
sudo apt autoclean # 删除已过时的旧版本软件包缓存
3.2 查找并且清洗大文件
例如大于100MB的文件
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k 5,5 -h
这个命令会在整个文件系统(/
)中查找大于100MB的文件,并按大小排序。注意观察输出结果,确保不要删除系统关键文件! 重点检查 /home
、/opt
、/tmp
和你自己创建的工作目录。
rm path/to/your/file.txt