📅  最后修改于: 2023-12-03 15:02:42.053000             🧑  作者: Mango
Linux FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)是UNIX系统资源的重要组成部分。它定义了UNIX目录树结构中的各个目录所包含的内容和用途。了解FHS的标准结构和规范,有助于程序员更好地理解UNIX系统的文件组织架构,编写高效的Shell脚本,以及在系统管理中实现最佳实践。
在FHS的标准目录结构中,用途相同的文件和目录都被组织在一起。目录结构如下:
/
├── bin: 存放可执行二进制文件的目录
├── boot: 存放启动Linux系统相关的文件
├── dev: 存放设备文件
├── etc: 存放系统配置文件
├── home: 存放用户家目录
├── lib: 存放系统共享库和内核模块
├── media: 挂载U盘和光盘等可移动设备的目录
├── mnt: 挂载其他文件系统的目录
├── opt: 存放可选的第三方软件包
├── proc: 存放系统内存,进程和文件系统状态等信息
├── root: root管理员的家目录
├── run: 存放临时运行时文件
├── sbin: 存放系统管理员特定的可执行二进制文件
├── srv: 存放服务器的数据文件,如HTTP、FTP、NFS等
├── sys: 存放内核相关文件
├── tmp: 存放临时文件
├── usr: 主要存放用户应用程序和文件
└── var: 存放运行时生成的文件,如日志文件、缓存文件等
/bin 目录存放了一些必要的系统命令和二进制可执行文件,如ls、cat、cp等等。它们是装载根文件系统之后立即可以使用的命令,所以通常会安装在根(Slash)下的一个独立的分区上,使其能快速访问,降低系统启动过程中的运行负载。
/boot 目录存放有关启动系统的文件,如内核、RAM磁盘映像文件、引导加载程序、内存测试程序等等。在引导时,这些文件需要从硬盘加载进内存。
/dev 目录是Linux系统下一个非常特殊的目录,它不是普通的目录而是一个虚拟的文件系统。其中存储了Linux系统中所使用的各种设备文件,如键盘、鼠标、硬盘、USB等等。所有设备操作都是通过/dev目录下的设备文件,而不是变量或函数。
/etc (是“Editable Text Configuration”(可编辑文本配置)的缩写) 目录下存放着Linux某些重要的配置文件。这些配置文件被用来设置Linux系统的一些全局参数和软件应用的运行参数。
/home 目录是Linux系统下的用户主目录。当Linux系统安装后,这个目录就已经存在了,而且Linux用户(包括root用户)在登陆系统时,其初始工作目录就是各自的家目录。
/lib 目录存放Linux系统用到的共享库文件,如libc.so等等。独立的程序通过链接共享库可以减小程序的体积,加快程序的启动速度。
/media 目录是Linux系统用来挂载可移动设备(如USB、CDROM)的默认目录。一般情况下,可移动设备连接到Linux系统后可以自动挂载到/media目录下,并自动从文件管理器中打开。
/mnt 目录是Linux系统用来挂载临时文件系统(如光盘、U盘,NFS)。但是,/mnt 并不像 /media 这么智能化,需要手动将设备挂载到此目录下。
/opt 目录下存放第三方应用程序,如Oracle数据库、WebSphere等等。
/proc 目录提供了一个进程(Process)与状态(status)的动态文件系统,存储了如进程、内存、CPU等系统信息。/proc是一个虚拟的文件系统,没有任何实际的数据,只是一个内容映射。需要注意的是,这里的数据是存储在内存中的,当你读取的时候,是实时更新的数据。
/root 目录是系统管理员root的默认家目录,不同于/home 目录是普通用户的用户主目录。
/run 目录是一个临时文件系统,它存储在系统内存中,用于存储与当前系统有关的运行时数据。
/sbin 目录下存放的是系统管理员可执行的二进制命令。
/srv 目录下存放一些服务相关的数据。如HTTP服务器使用的网页数据、FTP服务器使用的数据。
/sys 目录类似于/proc目录,都是一个动态的文件系统。主要存储了一些内核相关的信息。
/tmp 目录存储临时文件。但是,当系统重启之后这些文件都会被删除,这是它与/var/tmp不同的地方。
/usr 目录用于存储所有的用户数据,包括系统所有的应用程序、库、文档等等。
/var 目录用来存储系统运行过程中持续产生的文件,如日志文件、邮件收发保存的数据等。
以上是FHS UNIX系统资源的介绍,希望对你有所帮助。