FHS文件系统层次标准:FHS Filesystem Hierarchy Standard
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用“/”表示
根文件系统(rootfs):root filesystem
标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL
以 . 开头的文件为隐藏文件
路径分隔符 /
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件 灰色–>其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容
遵循FHS文件系统层次标准 这些目录是被Linux要求在根 / 下必须存在的目录
目录 | 目录描述 | 目录功能 |
---|---|---|
bin | Essential command binaries | 系统自带程序 |
boot | Static files of the boot loader | 系统启动引导文件 |
dev | Device files | 硬件设备文件形式存在 |
etc | Host-specific system configuration | 系统配置文件 |
lib | Essential shared libraries and kernel modules | 各种库和模块 |
media | Mount point for removeable media | 光驱或移动设备挂载点 |
mnt | Mount point for mounting a filesystem temporarily | 临时挂载点 |
opt | Add-on application software packages | 应用程序附加包 |
sbin | Essential system binaries | 基本系统二进制文件 |
srv | Data for services provided by this system | 服务数据 |
tmp | Temporary files | 临时目录 |
usr | Secondary hierarchy | 应用程序 |
var | Variable data | 系统变量等各种变量 |
如果安装了相应的子系统,系统根 / 必须存在以下目录或目录的符号链接
目录 | 目录描述 | 目录功能 |
---|---|---|
home | User home directories (optional) | 用户家目录 |
root | Home directory for the root user (optional) | root加目录 |
lib<qual> | Alternate format essential shared libraries (optional) | 共享库文件,例如lib64 |
root@u18a:~# tree -L 1 / / ├── bin ├── boot ├── cdrom ├── data ├── dev ├── etc ├── home ├── initrd.img -> boot/initrd.img-4.15.0-151-generic ├── initrd.img.old -> boot/initrd.img-4.15.0-147-generic ├── lib ├── lib64 ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin ├── snap ├── srv ├── swap.img ├── sys ├── tmp ├── usr ├── var ├── vmlinuz -> boot/vmlinuz-4.15.0-151-generic └── vmlinuz.old -> boot/vmlinuz-4.15.0-147-generic 23 directories, 5 files
[17:37:36 root@C8-88[ ~]#tree -L 1 / / ├── Apps ├── bin -> usr/bin ├── boot ├── cd ├── data ├── dev ├── etc ├── home ├── lib -> usr/lib ├── lib64 -> usr/lib64 ├── linux43 ├── linux44 ├── media ├── misc ├── mnt ├── net ├── opt ├── proc ├── root ├── run ├── sbin -> usr/sbin ├── srv ├── sys ├── tmp ├── usr ├── var └── vat
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录 /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序 /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序 /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules) /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /etc:配置文件目录 /home/USERNAME:普通用户家目录 /root:管理员的家目录 /media:便携式移动设备挂载点 /mnt:临时文件系统挂载点 /dev:设备文件及特殊文件存储位置 b: block device,随机访问 c: character device,线性访问 /opt:第三方应用程序的安装位置 /srv:系统上运行的服务用到的数据 /tmp:临时文件存储位置 /usr: universal shared, read-only data bin: 保证系统拥有完整功能而提供的应用程序 sbin: lib:32位使用 lib64:只存在64位系统 include: C程序的头文件(header files) share:结构化独立的数据,例如doc, man等 local:第三方应用程序的安装位置 bin, sbin, lib, lib64, etc, share /var: variable data files cache: 应用程序缓存数据目录 lib: 应用程序状态信息数据 local:专用于为/usr/local下的应用程序存储可变数据 lock: 锁文件 log: 日志目录及文件 opt: 专用于为/opt下的应用程序存储可变数据 run: 运行中的进程相关数据,通常用于存储进程pid文件 spool: 应用程序数据池 tmp: 保存系统两次重启之间产生的临时数据 /proc: 用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统 /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置