一文详解Linux根文件系统各文件夹作用
作者:一个平凡而乐于分享的小比特
本文深入解析了Linux系统中关键的目录结构,包括根分区、/etc、/boot、/var、/root、/tmp、/usr、/sbin、/mnt、/dev、/home和/proc等功能与用途,为理解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:安装软件
# 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
实用命令
# 查看目录大小 du -sh /* | sort -h # 查看磁盘使用情况 df -h # 查找大文件 find / -type f -size +100M 2>/dev/null # 查看目录结构 tree -L 2 / # 显示两级目录
理解Linux目录结构是系统管理的基础,每个目录都有其特定用途,遵循文件系统层次标准(FHS),这保证了不同Linux发行版之间的一致性。
以上就是一文详解Linux根文件系统各文件夹作用的详细内容,更多关于Linux根文件各文件夹作用的资料请关注脚本之家其它相关文章!
