linux文件系统结构是什么
Linux 文件系统采用层级式树形结构,所有文件和目录都从根目录 /
开始,形成一个统一的逻辑结构。以下是核心目录及其作用的详细说明:
1. 根目录 (/
)
- 作用:整个文件系统的起点,所有其他目录和文件均挂载在其下。
2. 核心系统目录
目录 |
用途 |
/bin |
基础用户二进制程序(如 ls , cp , bash ),所有用户可用。 |
/sbin |
系统管理二进制程序(如 iptables , fdisk ),需管理员权限。 |
/lib |
/bin 和 /sbin 的共享库文件(32位系统)。 |
/lib64 |
64位系统的共享库(仅64位系统存在)。 |
/etc |
系统全局配置文件(如网络配置、用户账户、服务配置)。 |
/dev |
设备文件(如 /dev/sda 表示磁盘,/dev/tty 表示终端)。 |
/proc |
虚拟文件系统,动态反映内核和进程信息(如 /proc/cpuinfo )。 |
/sys |
虚拟文件系统,用于与内核交互(如硬件设备管理)。 |
/usr |
用户程序资源(二级目录结构,见下文)。 |
/var |
可变数据(如日志、邮件、数据库文件)。 |
/tmp |
临时文件,所有用户可读写(通常重启后清空)。 |
/boot |
启动文件(如内核 vmlinuz 、引导加载器 grub )。 |
/root |
管理员家目录(普通用户家目录在 /home )。 |
/home |
普通用户家目录(如 /home/alice )。 |
/mnt |
临时挂载点(如手动挂载U盘或网络共享)。 |
/media |
自动挂载点(如插入光盘或USB时自动挂载)。 |
/opt |
可选第三方软件(如大型商业软件)。 |
/srv |
服务数据(如Web服务器的 /srv/www )。 |
/run |
运行时数据(如进程ID文件、锁文件,替代旧版 /var/run )。 |
3. /usr
的子目录
目录 |
用途 |
/usr/bin |
用户应用程序(如 python , git )。 |
/usr/sbin |
非关键的系统管理程序(如 useradd )。 |
/usr/lib |
/usr/bin 的库文件。 |
/usr/include |
C/C++ 头文件。 |
/usr/share |
架构无关数据(如文档、字体、图标)。 |
/usr/local |
本地编译安装的软件(优先级高于系统自带软件)。 |
4. /var
的子目录
目录 |
用途 |
/var/log |
系统日志文件(如 syslog , auth.log )。 |
/var/cache |
应用程序缓存数据(如 apt 的软件包缓存)。 |
/var/spool |
队列数据(如邮件 mail 、打印任务 cups )。 |
/var/lib |
动态数据库文件(如 apt 的软件状态、docker 的镜像存储)。 |
5. 特殊文件系统
/proc
和 /sys
- 不占用磁盘空间,由内核动态生成,用于查看或配置系统状态(如
/proc/meminfo
显示内存信息)。
/dev
- 包含设备文件(如
/dev/null
是“黑洞”设备,/dev/random
生成随机数)。
6. 设计原则
- FHS(Filesystem Hierarchy Standard)
- 一切皆文件
- 分离静态与动态数据
/usr
(只读软件) vs /var
(可变数据)。
示例:常见操作
# 查看根目录结构
ls /
# 查看磁盘使用情况
df -h
# 查找文件路径
which python
# 查看动态库依赖
ldd /bin/ls
通过这种层级结构,Linux实现了高度的灵活性和可维护性,无论是系统管理还是开发调试都能高效定位资源。