Linux 文件系统目录结构详解
2024年12月3日...大约 5 分钟
Linux 文件系统目录结构详解
概述
Linux 文件系统采用层次化目录结构,所有文件和目录都从根目录 (/
) 开始。了解各个目录的作用和特点,对于 Linux 系统管理和开发工作至关重要。
Linux 文件系统遵循 FHS(Filesystem Hierarchy Standard) 标准,确保不同 Linux 发行版之间的一致性。
学习建议
- 熟记核心目录的用途
- 理解目录间的层次关系
- 掌握各目录的权限特点
- 了解不同目录的数据特性(静态/动态、系统/用户)
1. 系统核心目录
🗂️ 根目录级别的核心目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/ | 根目录,所有目录的起点 | 系统的最顶层目录 | 包含所有其他目录 |
/bin | 基本系统命令 | 单用户模式下必需的命令 | ls , cp , mv , cat , bash 等 |
/sbin | 系统管理命令 | 需要 root 权限的命令 | fsck , reboot , iptables , mount 等 |
/etc | 系统配置文件 | 文本格式的配置文件 | passwd , fstab , hosts , nginx.conf |
/lib | 系统基础库文件 | 启动和运行系统必需的库 | libc.so , libm.so 等共享库 |
/lib64 | 64位系统库文件 | 64位架构的库文件 | 64位版本的共享库文件 |
🏠 用户相关目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/home | 普通用户主目录 | 用户个人文件存储 | /home/username/ 个人目录 |
/root | 超级用户主目录 | root 用户的个人目录 | .bashrc , .ssh/ , 管理脚本 |
💾 设备和挂载目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/dev | 设备文件 | 设备的抽象表示 | sda (硬盘), null , tty (终端), random |
/media | 可移动媒体挂载点 | 自动挂载点 | /media/usb , /media/cdrom |
/mnt | 临时挂载点 | 手动挂载使用 | 临时挂载的文件系统 |
📊 系统信息和运行时目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/proc | 进程和内核信息 | 虚拟文件系统,内存中存在 | /proc/cpuinfo , /proc/meminfo , /proc/PID/ |
/sys | 硬件和内核参数 | 虚拟文件系统,硬件抽象 | /sys/class/ , /sys/devices/ |
/run | 运行时数据 | 系统启动后的临时数据 | PID 文件, socket 文件, 锁文件 |
📝 可变数据目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/var | 可变数据 | 经常变化的文件 | 日志、邮件队列、缓存等 |
/var/log | 系统日志 | 各种服务的日志文件 | syslog , auth.log , nginx/ |
/var/spool | 队列数据 | 待处理的任务队列 | 邮件队列、打印队列 |
/var/tmp | 持久临时文件 | 重启后保留的临时文件 | 比 /tmp 更持久的临时文件 |
🚀 启动相关目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/boot | 启动文件 | 系统引导必需文件 | vmlinuz (内核), initrd , grub/ |
🗃️ 临时文件目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/tmp | 临时文件 | 重启时清空 | 程序运行时的临时文件 |
2. /usr 目录层次结构
/usr
目录是 Unix System Resources 的缩写,包含用户程序和数据:
📁 /usr 子目录详解
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/usr/bin | 用户命令 | 大部分用户程序 | gcc , python , vim , git |
/usr/sbin | 系统管理程序 | 非必需的系统命令 | cron , sshd 等服务程序 |
/usr/lib | 程序库文件 | 应用程序的库文件 | 各种软件包的库文件 |
/usr/lib64 | 64位程序库 | 64位架构的库文件 | 64位应用程序库 |
/usr/local | 本地安装软件 | 管理员手动安装的软件 | /usr/local/bin , /usr/local/lib |
/usr/share | 共享数据 | 架构无关的数据文件 | 文档、图标、字体等 |
/usr/include | C头文件 | 开发时用的头文件 | 系统和库的头文件 |
/usr/src | 源代码 | 内核和软件包源码 | 内核源码、软件包源码 |
/usr/local 的重要性
/usr/local
目录专门用于安装本地软件,不会被系统更新覆盖,是管理员手动编译安装软件的首选位置。
3. 特殊目录和扩展目录
🔧 服务和应用目录
目录 | 用途 | 特点 | 常见内容 |
---|---|---|---|
/opt | 可选软件包 | 第三方软件安装 | /opt/google/chrome , /opt/vmware |
/srv | 服务数据 | 系统提供的服务数据 | /srv/www (Web数据), /srv/ftp |
📦 包管理器相关目录
目录 | 用途 | 适用系统 | 常见内容 |
---|---|---|---|
/etc/apt | APT 配置 | Debian/Ubuntu | sources.list , apt.conf |
/etc/yum.repos.d | YUM 仓库配置 | RedHat/CentOS | *.repo 文件 |
/etc/systemd | Systemd 配置 | 现代 Linux | 服务单元文件 |
4. 目录分类总结
🎯 按功能分类
系统核心
/bin
,/sbin
- 基本命令/lib
,/lib64
- 系统库/etc
- 配置文件/boot
- 启动文件
用户数据
/home
- 用户目录/root
- 管理员目录/usr
- 用户程序
变化数据
/var
- 可变文件/tmp
- 临时文件/run
- 运行时数据
虚拟系统
/proc
- 进程信息/sys
- 硬件信息/dev
- 设备文件
📊 按数据特性分类
数据类型 | 目录 | 特点 |
---|---|---|
静态数据 | /bin , /sbin , /lib , /usr | 系统运行期间不变 |
动态数据 | /var , /tmp , /run | 经常变化 |
配置数据 | /etc | 管理员可修改 |
虚拟数据 | /proc , /sys , /dev | 内核提供的虚拟信息 |
5. 实用技巧和最佳实践
💡 目录使用建议
开发者建议
- 软件安装:优先使用包管理器,手动编译的软件安装到
/usr/local
- 配置备份:定期备份
/etc
目录下的配置文件 - 日志管理:定期清理
/var/log
下的旧日志文件 - 临时文件:使用
/tmp
存放临时文件,使用/var/tmp
存放需要保留的临时文件
⚡ 常用命令示例
# 查看目录大小
du -sh /var/log
du -sh /usr/local
# 查看磁盘使用情况
df -h
# 查看目录结构
tree -L 2 /
# 查找大文件
find /var -size +100M -type f
# 清理临时文件
sudo rm -rf /tmp/*
sudo find /var/tmp -mtime +7 -delete
🔒 权限和安全注意事项
安全提醒
- 系统目录:避免直接修改
/bin
,/sbin
,/lib
等系统核心目录 - 配置文件:修改
/etc
下的配置文件前先备份 - 权限管理:注意文件和目录的权限设置
- 空间监控:定期监控
/var
,/tmp
,/home
的磁盘使用情况
通过理解这些目录的用途和特点,你可以更好地管理 Linux 系统,提高工作效率,并避免常见的系统管理错误。
赞助