Linux File Hierarchy Structure或Filesystem Hierarchy Standard(FHS)在类Unix操作系统中定义目录结构和目录内容, 由Linux Foundation维护。
- 在FHS中, 所有文件和目录都存储在根目录/下, 即使它们存储在不同的物理或虚拟设备上也是如此。
- 如果安装了某些子系统(例如X Window System), 则某些目录仅存在于特定系统上。
- 这些目录大多数都存在于所有UNIX操作系统中, 并且通常以几乎相同的方式使用。但是, 这里的描述是专门用于FHS的描述, 并不被认为对Linux以外的平台具有权威性。
1. /(根目录):整个文件系统层次结构的主层次结构根目录和根目录。
- 每个文件和目录都从根目录开始
- 只有root用户有权在此目录下写入
- / root是根用户的主目录, 与/不相同
2. / bin:需要在单用户模式下可用的基本命令二进制文件;适用于所有用户, 例如cat, ls, cp。
- 包含二进制可执行文件
- 你需要在单用户模式下使用的常见Linux命令位于此目录下。
- 系统所有用户使用的命令位于此处, 例如ps, ls, ping, grep, cp
3. /boot:
引导加载程序文件, 例如内核, initrd。
- 内核initrd, vmlinux, grub文件位于/ boot下
- 示例:initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic
4. / dev:
基本设备文件, 例如/ dev / null。
- 这些包括终端设备, USB或连接到系统的任何设备。
- 示例:/ dev / tty1, / dev / usbmon0
5. / etc:
特定于主机的系统范围的配置文件。
- 包含所有程序所需的配置文件。
- 它还包含用于启动/停止单个程序的启动和关闭Shell脚本。
- 示例:/etc/resolv.conf、/etc/logrotate.conf。
6. / home:
用户的主目录, 其中包含保存的文件, 个人设置等。
- 所有用户的主目录, 用于存储其个人文件。
- 例如:/ home / kishlay, / home / kv
7. / lib:
对于/ bin /和/ sbin /中的二进制文件必不可少的库。
- 库文件名是ld *或lib * .so。*
- 示例:ld-2.11.1.so, libncurses.so.5.7
8. / media:
CD-ROM等可移动介质的安装点(出现在FHS-2.3中)。
- 可移动设备的临时安装目录。
- 例如, 用于CD-ROM的/ media / cdrom; / media / floppy用于软盘驱动器; CD刻录机的/ media / cdrecorder
9. / mnt:
临时挂载的文件系统。
- sysadmin可以在其中挂载文件系统的临时挂载目录。
10. / opt:
可选的应用程序软件包。
- 包含来自各个供应商的附加应用程序。
- 附加应用程序应安装在/ opt /或/ opt /子目录下。
11. / sbin:
基本系统二进制文件, 例如fsck, init, route。
- 就像/ bin一样, / sbin也包含二进制可执行文件。
- 位于该目录下的linux命令通常由系统管理员用于系统维护。
- 示例:iptables, 重新启动, fdisk, ifconfig, swapon
12. / srv:
此系统服务的特定于站点的数据, 例如Web服务器的数据和脚本, FTP服务器提供的数据以及版本控制系统的存储库。
- srv代表服务。
- 包含服务器特定的服务相关数据。
- 例如, / srv / cvs包含与CVS相关的数据。
13. / tmp:
临时文件。通常在系统重新引导之间不会保留, 并且可能会受到严格的大小限制。
- 包含系统和用户创建的临时文件的目录。
- 重新启动系统后, 该目录下的文件将被删除。
14. / usr:
只读用户数据的二级层次结构;包含大多数(多)用户实用程序和应用程序。
- 包含二进制文件, 库, 文档和第二级程序的源代码。
- / usr / bin包含用户程序的二进制文件。如果在/ bin下找不到用户二进制文件, 请在/ usr / bin下查找。例如:at, awk, cc, less, scp
- / usr / sbin包含系统管理员的二进制文件。如果在/ sbin下找不到系统二进制文件, 请在/ usr / sbin下查找。例如:atd, cron, sshd, useradd, userdel
- / usr / lib包含/ usr / bin和/ usr / sbin的库
- / usr / local包含你从源代码安装的用户程序。例如, 当你从源代码安装apache时, 它位于/ usr / local / apache2下
- / usr / src包含Linux内核源代码, 头文件和文档。
15. / proc:
虚拟文件系统以文件形式提供进程和内核信息。在Linux中, 对应于procfs挂载。通常由系统即时动态生成和填充。
- 包含有关系统进程的信息。
- 这是一个伪文件系统, 包含有关运行进程的信息。例如:/ proc / {pid}目录包含有关具有该特定pid的进程的信息。
- 这是一个虚拟文件系统, 其中包含有关系统资源的文本信息。例如:/ proc / uptime
遵循FHS 3.0版, 现代Linux发行版包括/ run目录作为临时文件系统(tmpfs), 用于存储易失性运行时数据。根据FHS 2.3版, 此类数据存储在/ var / run中, 但这在某些情况下是一个问题, 因为该目录在早期启动时并不总是可用。结果, 这些程序不得不采取欺骗手段, 例如使用/dev/.udev、/dev/.mdadm、/dev/.systemd或/dev/.mount目录, 即使设备目录不是必需的。除其他优点外, 这还使系统更易于在以只读方式安装根文件系统的情况下正常使用。例如, 以下是Debian在其2013 Wheezy版本中所做的更改:
- /dev/.* ? /run/*
- /dev/shm ? /run/shm
- /dev/shm/* ? /run/*
- /etc/* (writeable files) ? /run/*
- /lib/init/rw ? /run
- /var/lock ? /run/lock
- /var/run ? /run
- /tmp ? /run/tmp
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。