🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习
🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发
❄️作者主页:一个平凡而乐于分享的小比特的个人主页
✨收录专栏:Linux,本专栏目的在于,记录学习Linux操作系统的总结
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

Linux根文件系统各文件夹作用详解
📁 Linux目录结构全景图
/
├── bin/ (基本命令)
├── boot/ (启动文件)
├── dev/ (设备文件)
├── etc/ (配置文件)
├── home/ (用户目录)
├── lib/ (共享库)
├── media/ (可移动媒体)
├── mnt/ (临时挂载)
├── opt/ (可选软件)
├── proc/ (进程信息)
├── root/ (root用户家目录)
├── run/ (运行时数据)
├── sbin/ (系统命令)
├── srv/ (服务数据)
├── sys/ (系统信息)
├── tmp/ (临时文件)
├── usr/ (用户程序)
└── var/ (可变数据)
📊 目录功能对比表
| 目录 | 主要用途 | 类比现实世界 | 典型内容 | 是否可删除 |
|---|---|---|---|---|
| /bin | 基础命令 | 工具箱 | ls, cp, rm, cat | 否(系统无法启动) |
| /sbin | 系统管理命令 | 专用工具 | fdisk, ifconfig, reboot | 否 |
| /etc | 配置文件 | 设置说明书 | passwd, network.conf | 否 |
| /home | 用户个人文件 | 个人房间 | 用户文档、设置 | 是(但用户数据会丢失) |
| /root | 管理员家目录 | 经理办公室 | root的配置文件 | 可(但不建议) |
| /dev | 设备文件 | 设备插槽 | /dev/sda1, /dev/tty | 否 |
| /lib | 共享库文件 | 公共图书馆 | .so文件 | 否 |
| /proc | 进程和内核信息 | 监控仪表盘 | cpuinfo, meminfo | 否(虚拟文件系统) |
| /tmp | 临时文件 | 公共白板 | 缓存、临时下载 | 是(重启可能丢失) |
| /usr | 用户程序资源 | 应用商店 | 程序、文档、库 | 否 |
| /var | 可变数据 | 仓库/日志室 | 日志、邮件、数据库 | 否 |
| /boot | 启动文件 | 引擎启动器 | 内核、grub | 否 |
| /opt | 可选软件包 | 扩展应用区 | 第三方大型软件 | 是(软件会丢失) |
| /mnt | 临时挂载点 | 临时停车位 | 外部硬盘、ISO | 是(但会失去挂载点) |
| /media | 可移动媒体 | 自动挂载区 | U盘、光盘 | 是 |
🔍 详细目录解析
1. /bin 和 /usr/bin - 命令仓库
/bin/ /usr/bin/
├── bash ├── python3
├── cat ├── gcc
├── ls ├── vim
├── cp ├── git
└── rm └── ssh
- /bin: 基础生存命令(单用户模式也需要)
- /usr/bin: 大部分用户命令
- 场景: 系统救援时,/bin必须存在才能执行基本操作
2. /etc - 系统配置中心
/etc/
├── passwd # 用户账户信息
├── group # 用户组信息
├── fstab # 文件系统挂载表
├── hosts # 主机名映射
├── network/ # 网络配置
├── ssh/ # SSH服务器配置
└── apt/ # 包管理器配置
- 特点: 几乎全是文本文件,可直接编辑
- 重要文件 :
/etc/passwd(用户)、/etc/fstab(挂载)
3. /home 和 /root - 用户空间
/home/ /root/
├── alice/ ├── .bashrc
│ ├── Documents/ ├── .ssh/
│ ├── Downloads/ └── scripts/
│ └── .config/
└── bob/
├── Music/
└── projects/
- /home/username: 每个用户的个人空间
- /root: 超级用户的家目录(不在/home下是为了安全)
4. /dev, /proc, /sys - 系统接口
/dev/ /proc/ /sys/
├── sda1 ├── 1/ ├── class/
├── tty0 │ ├── cmdline ├── devices/
├── null │ └── status └── kernel/
├── zero ├── cpuinfo
└── random └── meminfo
- /dev: 设备文件(硬盘、终端等)
- /proc: 进程和系统信息(虚拟文件系统)
- /sys: 内核和设备信息
5. /var - 变化的数据
/var/
├── log/ # 日志文件
│ ├── auth.log # 认证日志
│ └── syslog # 系统日志
├── cache/ # 应用程序缓存
├── lib/ # 程序状态信息
├── mail/ # 用户邮件
├── run/ # 运行时数据(PID文件等)
├── spool/ # 排队数据(打印队列等)
└── www/ # 网站文件(如果运行Web服务器)
6. /usr - 用户软件资源
/usr/
├── bin/ # 非必要命令
├── sbin/ # 非必要系统命令
├── lib/ # 库文件
├── share/ # 架构无关数据
│ ├── man/ # 手册页
│ └── doc/ # 文档
├── local/ # 本地安装软件
└── src/ # 内核源码
🎯 实际场景理解
场景1:系统启动过程
1. BIOS/UEFI → /boot/grub/ → /boot/vmlinuz* (内核)
2. 内核加载 → 挂载根文件系统 → 读取 /etc/fstab
3. 启动init/systemd → 读取 /etc/systemd/ 或 /etc/init.d/
4. 启动服务 → 日志写入 /var/log/
场景2:用户登录
1. 输入用户名密码 → /etc/passwd 验证
2. 登录成功 → 进入 /home/用户名/
3. 读取个人配置 → ~/.bashrc, ~/.profile
4. 执行命令 → 从 /bin/ 或 /usr/bin/ 查找
场景3:安装软件
bash
# Debian/Ubuntu
sudo apt install nginx
# 文件安装到:
# 程序 → /usr/sbin/nginx
# 配置 → /etc/nginx/
# 日志 → /var/log/nginx/
# 网页 → /var/www/html/
⚠️ 重要注意事项
-
不要随意删除的目录:
/bin,/sbin,/lib,/etc- 系统无法运行/boot- 无法启动/dev- 无法访问硬件
-
定期清理的目录:
/tmp- 临时文件/var/tmp- 长期临时文件/var/log- 日志文件(使用logrotate)
-
权限注意事项:
/root- 只有root可访问/home/用户- 用户本人和root可访问/tmp- 所有用户可读写
🔄 现代Linux的变化
- /bin, /sbin, /lib 现在通常是到
/usr的符号链接 - /run - 取代了
/var/run,存储运行时数据 - systemd - 改变了
/etc/init.d的启动方式
💡 记忆技巧
- 静态的 (很少变):
/bin,/sbin,/boot,/etc - 动态的 (经常变):
/home,/var,/tmp - 虚拟的 (内存中):
/proc,/sys,/dev - 用户的 :
/home,/usr,/opt
🛠️ 实用命令
bash
# 查看目录大小
du -sh /* | sort -h
# 查看磁盘使用情况
df -h
# 查找大文件
find / -type f -size +100M 2>/dev/null
# 查看目录结构
tree -L 2 / # 显示两级目录
理解Linux目录结构是系统管理的基础,每个目录都有其特定用途,遵循文件系统层次标准(FHS),这保证了不同Linux发行版之间的一致性。