文件层次结构是存储设备中的文件组织,如硬盘、SSD等,在这篇文章中我们讨论了Linux操作系统的文件层次结构。
本文将讨论Linux操作系统的文件层次结构
- 简介
- 二进制文件
- 配置目录
- 数据目录
- 内存目录
- 变量目录
- 系统资源
- 非标准目录
- 总结
- 参考资料
引言
Linux操作系统有一个分层的文件结构。FHS(文件系统分层标准)定义了Linux操作系统的目录结构及其内容。
标准的Linux命令、目录、用户、应用程序、内核、库、临时文件都包含在文件层次结构中,使操作系统能够正常运行。
这个结构是以树的形式出现的,要查看这个结构,我们可以导航到根目录'cd / & ls',或者用图形化的方式查看,我们可以使用树形工具,可以按以下方式安装。
蝶变或Ubuntu
sudo apt install tree
Fedora或Redhat
sudo dnf install tree
安装后,改变目录到根目录,cd /,然后输入树状命令。

二进制文件
二进制文件包含已编译的源代码,也称为可执行文件,因为它们可以被执行。
二进制文件的目录是:
- /bin 存储终端的核心工具和命令,如cat, chmod, chown, df, echo, ls, mkdir, pwd, rm, rmdir, kill, uname等等。
- /sbin这与bin类似,例外的是,它专门用于只能由超级用户或根用户执行的命令。它们包括:fsck、halt、mkfs、mkswap、reboot、route、swapoff、swapon等等。
- /lib它存储了程序运行所需的库。库可以在不同的程序之间共享,这也是为什么Linux安装是轻便的主要原因。
- /opt存储不被Linux发行包管理器管理的可选软件。也就是说,它将存储来自个别供应商的附加应用程序。
配置目录
这些目录将存储配置文件,这些文件负责配置计算机程序的参数和初始设置。
它们包括。
*/boot。*这将存储所有需要启动的文件。建议不要修改这个目录,因为如果配置不正确,会导致启动问题。
/etc。这个目录负责存储影响所有系统用户的配置文件。它主要包含静态程序的本地文件。这个文件夹的备份是必不可少的,因为它将在重新安装时为我们节省大量的配置。子目录的一个例子是/etc/init.d,它存放控制系统或启动和停止守护程序的脚本。
数据目录。
顾名思义,这些目录存储系统数据,这里的目录包括:
*/home。*这个目录将存储所有用户的数据,因为大部分时间都是在这里度过的。子目录如桌面、文档、下载、照片都存储在这里。
这个目录还包含个人配置文件dot-files,因为它们是隐藏的。当个人配置文件和系统配置文件之间发生冲突时,个人配置将被继承:
- */root。这是系统管理员或根用户的主目录。注意,/*目录与此目录不同。
- */srv。*它负责存储服务的数据,例如,目前在系统上运行的www,ftp。
- /media。这是一个提供外部设备(如光驱、USB)挂载的地方的目录。它在不同的Linux发行版中可能有所不同。它是由操作系统管理的,如果你需要手动挂载设备,/mnt目录可以达到这个目的。
- /mnt。这是一个占位符目录,用来存放其他挂载的文件夹或驱动器,如外部硬盘、软盘或USB。/media目录由操作系统管理,可以用来代替它,但是*/mnt*也可以用来手动安装设备。
- *临时文件。*运行中的应用程序的临时文件存储在这里,与windows操作系统不同,它们通常在关机时被删除。存储在这里的数据可以使用磁盘空间或RAM。
内存目录
这些目录包含整个系统的文件,文件中存储的信息包括设备信息、进程数据和所有与系统有关的信息。
子目录包括。
- /dev:物理设备,如HDD、USB、光驱都挂在这里。也就是说,系统的HDD可能被挂载在/dev/sda上,而外部USB可能被挂载在*/dev/sde/上,也可能存在不同的分区,即/dev/sda1*、/dev/sda2/。
- */proc:*这是进程目录,系统信息以文件形式表示。它作为内核与系统中运行的进程进行通信的一种方式。它也可以被看作是一个虚拟文件系统,因为它只包含运行时的系统信息(不是 "真正的 "文件)。
- */sys。这是一个像/dev/*一样的虚拟目录,在启动时创建。它保存了与所有连接设备有关的所有信息。
变量目录。
这里的目录是var目录,用来存储所有变量数据,即系统日志。这里的文件和文件夹预计会随着时间的推移和系统的使用而增加。
这里的一些子目录包括:
- */var/log。*这将包含所有的日志文件。
- /var/lib。 包含状态信息即数据库的文件存储在这里。
- */var/cache。*存储所有来自应用程序的缓存数据,通常由I/O或计算产生。这里的文件可以被删除而不会有任何数据损失。
- */var/spool。*这里存储等待处理的文件,如邮件队列。
系统资源
这里唯一的目录是*/usr*(unix系统资源),它将拥有用户之间共享的所有文件和工具。它将有自己的/bin、/sbin/和/lib目录,与sudoer的目录不同。
/usr的子目录有:
- */usr/bin:*包含用户的非重要的全局二进制命令。
- /usr/lib:它有usr/bin、/usr/sbin的所有二进制文件,不直接由用户执行。
- */usr/include:*它包含了所有标准的C语言包含文件。
- */usr/share。*其中包含共享数据。
- /usr*/local:*从源代码安装的程序存放在这里。
- /*usr/src:*存放源代码,如内核源代码及其头文件。
非标准目录
这些目录不包括在FHS中,它们包括。
- /cdrom:安装可以发生在*/media*目录中,然而,cdrom也可以安装在这里。
- */run。*运行时变量数据,即上次启动后的系统数据,存储在这里。
- /lost+found。当系统发生错误时,例如崩溃,由fsck(文件系统检查器)恢复的丢失的数据就存储在这里。它可能被破坏,也可能不被破坏。
摘要
Linux文件层次标准负责定义目录结构和内容,它由Linux基金会维护。
请记住,在UNIX/Linux系统中,所有的东西都是一个文件,否则它就是一个进程。