深入浅出:Linux文件层次结构详细指南和教程

2021年3月18日15:32:22 发表评论 1,120 次浏览

Linux File Hierarchy Structure或Filesystem Hierarchy Standard(FHS)在类Unix操作系统中定义目录结构和目录内容, 由Linux Foundation维护。

  • FHS中, 所有文件和目录都存储在根目录/下, 即使它们存储在不同的物理或虚拟设备上也是如此。
  • 如果安装了某些子系统(例如X Window System), 则某些目录仅存在于特定系统上。
  • 这些目录大多数都存在于所有UNIX操作系统中, 并且通常以几乎相同的方式使用。但是, 这里的描述是专门用于FHS的描述, 并不被认为对Linux以外的平台具有权威性。
linux目录

1. /(根目录):整个文件系统层次结构的主层次结构根目录和根目录。

  • 每个文件和目录都从根目录开始
  • 只有root用户有权在此目录下写入
  • / root是根用户的主目录, 与/不相同
根Linux目录

2. / bin:需要在单用户模式下可用的基本命令二进制文件;适用于所有用户, 例如cat, ls, cp。

  • 包含二进制可执行文件
  • 你需要在单用户模式下使用的常见Linux命令位于此目录下。
  • 系统所有用户使用的命令位于此处, 例如ps, ls, ping, grep, cp
bin-linux-目录

3. /boot:

引导加载程序文件, 例如内核, initrd。

  • 内核initrd, vmlinux, grub文件位于/ boot下
  • 示例:initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic
引导Linux目录

4. / dev:

基本设备文件, 例如/ dev / null。

  • 这些包括终端设备, USB或连接到系统的任何设备。
  • 示例:/ dev / tty1, / dev / usbmon0
dev-linux-目录

5. / etc:

特定于主机的系统范围的配置文件。

  • 包含所有程序所需的配置文件。
  • 它还包含用于启动/停止单个程序的启动和关闭Shell脚本。
  • 示例:/etc/resolv.conf、/etc/logrotate.conf。
etc-linux-目录

6. / home:

用户的主目录, 其中包含保存的文件, 个人设置等。

  • 所有用户的主目录, 用于存储其个人文件。
  • 例如:/ home / kishlay, / home / kv
主Linux目录
主Linux目录

7. / lib:

对于/ bin /和/ sbin /中的二进制文件必不可少的库。

  • 库文件名是ld *或lib * .so。*
  • 示例:ld-2.11.1.so, libncurses.so.5.7
lib-linux-目录

8. / media:

CD-ROM等可移动介质的安装点(出现在FHS-2.3中)。

  • 可移动设备的临时安装目录。
  • 例如, 用于CD-ROM的/ media / cdrom; / media / floppy用于软盘驱动器; CD刻录机的/ media / cdrecorder
媒体Linux目录

9. / mnt:

临时挂载的文件系统。

  • sysadmin可以在其中挂载文件系统的临时挂载目录。
mnt-linux-目录

10. / opt:

可选的应用程序软件包。

  • 包含来自各个供应商的附加应用程序。
  • 附加应用程序应安装在/ opt /或/ opt /子目录下。
opt-linux-目录

11. / sbin:

基本系统二进制文件, 例如fsck, init, route。

  • 就像/ bin一样, / sbin也包含二进制可执行文件。
  • 位于该目录下的linux命令通常由系统管理员用于系统维护。
  • 示例:iptables, 重新启动, fdisk, ifconfig, swapon
sbin-linux-目录

12. / srv:

此系统服务的特定于站点的数据, 例如Web服务器的数据和脚本, FTP服务器提供的数据以及版本控制系统的存储库。

  • srv代表服务。
  • 包含服务器特定的服务相关数据。
  • 例如, / srv / cvs包含与CVS相关的数据。
srv-linux-目录

13. / tmp:

临时文件。通常在系统重新引导之间不会保留, 并且可能会受到严格的大小限制。

  • 包含系统和用户创建的临时文件的目录。
  • 重新启动系统后, 该目录下的文件将被删除。
tmp-linux-目录

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内核源代码, 头文件和文档。
usr_bin-linux-目录
usr_sbin-linux-目录
usr_lib-linux-dirctory
usr_local-linux-目录
usr_src-linux-目录

15. / proc:

虚拟文件系统以文件形式提供进程和内核信息。在Linux中, 对应于procfs挂载。通常由系统即时动态生成和填充。

  • 包含有关系统进程的信息。
  • 这是一个伪文件系统, 包含有关运行进程的信息。例如:/ proc / {pid}目录包含有关具有该特定pid的进程的信息。
  • 这是一个虚拟文件系统, 其中包含有关系统资源的文本信息。例如:/ proc / uptime
proc-linux-目录
proc-linux-目录

遵循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

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: