Linux文件层次结构
大家好!我是大聪明-PLUS!
Linux 文件层次结构,也称为文件系统层次结构标准 (FHS),定义了类 Unix 操作系统中目录及其内容的组织方式。Linux 基金会负责维护该标准。
- 根据 FHS,所有文件和目录都位于根目录 / 内,即使它们在物理上或虚拟上位于不同的设备上。 
- 仅当安装了某些子系统(例如 X Window 系统)时,其中一些目录才会出现在系统中。 
- 大多数这些目录都可以在所有类 UNIX 系统上找到,并且使用方式大致相同,但这里提供的描述特定于 FHS,并且不被视为 Linux 以外平台的权威描述。 

Linux 目录
1. /(根):
任何 Linux 文件系统的顶层都是根目录,用斜线 表示/。这是起点,在层次结构中,没有其他目录出现在其上方。如果以图形方式想象文件系统,所有其他目录都将从这个根目录分支出来。
- 系统中的每个文件和目录都从根目录开始。 
- 只有具有 root 权限的用户(超级用户)才具有该目录的写权限。 
- /root— 是超级用户的主目录,并不是的同义词- /。
只有超级用户才有权修改此目录的内容。普通用户无法在此处进行更改。例如,如果您尝试在/没有 root 权限的情况下在此目录中创建文件,则会遇到访问被拒绝的错误。

根 Linux 目录
2. /bin 和 /sbin:
/bin和目录/sbin过去包含启动和恢复系统所需的基本命令和系统实用程序。然而,在大多数现代 Linux 发行版(例如 Ubuntu、Debian、Fedora 和 Arch)中,它们已成为指向和目录的符号链接。这是 usr 合并标准的一部分,旨在简化层次结构。现在,所有可执行文件都存储在一个位置—— 和,以及和被保留以实现兼容性。/usr/bin/usr/sbin/usr/bin/usr/sbin/bin/sbin

bin-linux 目录
3. /启动:
此目录包含启动系统所需的所有文件。它包含 GRUB 引导加载程序配置以及系统启动期间加载的重要内核文件。
- 内核文件(initrd、vmlinux、grub)位于 - /boot.
- 示例: - vmlinuz-5.15.0-88-generic,- initrd.img-6.8.0-rc4该目录仍然包含 Linux 内核和引导加载程序配置(例如 GRUB),但在UEFI系统上,某些设置可能存储在中- /boot/efi。

启动 Linux 目录
4. /dev:
Linux 中的设备文件位于目录中/dev。这些是充当硬件和软件之间接口的特殊文件。
设备文件有两种类型:块设备(例如硬盘)和字符设备(例如麦克风和扬声器)。例如:/dev/sda1硬盘分区。
- 这还包括终端设备、USB 设备以及连接到系统的任何其他设备。 
- 例如 - /dev/tty1:- /dev/usbmon0

dev-linux-目录
5. /etc:
“可编辑文本配置”的一个常见幽默缩写是“et cetera”,但实际上就是/etc “et cetera”(“等等”)。此目录存储系统配置文件,包括网络、用户、服务和启动设置。例如,UID 和本地地址等用户数据就存储在这里。
- 它还包含用于启动和停止单个程序的启动和关闭脚本。 
- 例如 - /etc/resolv.conf:- /etc/logrotate.conf

etc-linux 目录
6. /home:
每个非 root 用户在 中都有一个个人目录/home。例如,如果您的用户名是 anshu,那么您的主目录就是/home/anshu。
每个用户只能在自己的主目录中创建、删除和修改文件,而不能访问其他用户的目录。
- 所有用户的主目录都用于存储他们的个人文件、设置和数据。 
- 例如 - /home/kishlay:- /home/kv

主 Linux 目录

主 Linux 目录
7. /lib:
应用程序需要共享库,这些共享库存储在目录中/lib。其中包括程序执行期间所需的动态库。
- 例如,系统启动时使用的核心系统库可能位于此处。第三方应用程序库通常位于 - /usr/lib。
- 库名通常以 - ld*或开头- lib*.so.*。

lib-linux-目录
8./media:
该目录/media用于自动挂载可移动设备,例如 USB 闪存驱动器、SD 卡和外部驱动器。
现代 Linux 发行版使用模板自动在子目录中安装此类设备:/media/<имя_пользователя>/<имя_устройства>- 例如/media/alex/USB_DISK。
/media/cdrom以前,人们使用像或 这样的公共目录/media/floppy,但是它们已经过时,在现代系统中很少使用。

media-linux-目录
9. /mnt:
此目录/mnt保留用于管理员手动挂载文件系统。它通常为空,用于管理目的,例如测试或临时使用外部设备。

mnt-linux-目录
10. /opt:
标准系统发行版中未包含的第三方软件和软件包位于 /opt 目录中。此目录存储可执行文件以及相关数据和配置。
- 包含来自第三方提供商的附加应用程序。 
- 必须将其他应用程序安装到该目录 - /opt/或其子目录中。

opt-linux-目录
11. /srv:
包含通过各种服务提供的特定于服务器的数据 - 例如,Web 服务器的数据和脚本、通过 FTP 提供的信息以及版本控制系统的存储库。
- srv代表“服务”。
- 包含与服务器上运行的特定服务相关的数据。 
- 示例: - /srv/cvs- 与 CVS 系统相关的数据。

srv-linux-目录
13. /tmp:
程序在执行过程中会创建临时文件,并存储在目录中/tmp。这些文件会在程序终止或系统重启时自动删除。
- 该目录包含系统和用户创建的临时文件。 
- 系统重启时,该目录中的文件将被删除。 

tmp-linux-目录
14. /usr:
用于存储用户使用的只读数据的二级层次结构。它包含大部分用户实用程序和应用程序。
- 包含二级程序的二进制文件、库、文档和源代码。 
- /usr/bin— 包含所有基本用户命令。
- /usr/sbin— 包含系统管理员的二进制文件。如果您需要的实用程序不在 [filename- /sbin] 中,它可能在这里。示例:- atd[ filename- 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-目录

usr_local-linux-目录

usr_src-linux 目录
15. /proc:
/proc— 是一个虚拟文件系统,为内核的内部结构提供接口。
除了有关进程(/proc/<PID>)的信息外,它还包含有关内存(/proc/meminfo)、处理器(/proc/cpuinfo)、负载(/proc/uptime)、内核参数(/proc/sys/)等的数据。
用户和系统实用程序均使用此目录来监视和配置系统。

proc-linux 目录

proc-linux 目录
16. /运行:
/run— 迁移到 时创建的临时目录systemd。用于存储 PID 文件、套接字以及系统运行期间所需的其他信息。
这是一个文件系统tmpfs,其内容在重启后会丢失。旧路径/var/run现在通常是指向的符号链接/run。
结论
Linux 文件系统 (FHS) 用于存储从程序、设置到用户个人文件的所有内容。它从根目录开始/,将结构组织到专门的文件夹中,每个文件夹都有特定的用途。
主要目录包括:
/home- 个人用户文件,
/etc- 系统设置,
/usr/bin- 基本用户命令(历史上 - /bin),
/tmp- 临时文件。
这种组织使得 Linux 系统在所有计算机上都整洁、安全且一致。
你可以随意学习文件系统结构,但如果没有实际使用工具的经验,这一切都只是理论而已。管理 Linux 意味着能够仅用几条命令就实现环境的自动化、简化和部署。
