FHS文件系统各目录功能
前言
FHS (Files system Hiserarchy Standard) 文件系统目录标准。目前多数linux版本采用这种文件组织形式,类似于windows操作系统中的C盘的文件目录,FHS采用树形结构组织文件。定了系统中每个区域的用途、所需的最小构成的文件和目录,同时给出了例外处理与矛盾处理。
目录
一、FHS标准内容
二、目录树directory tree
三、FHS目录结构
参考资料
一、FHS标准内容
FHS标准定义了两层规范第一层是/ 下面的各个目录应该放什么文件数据。第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log 放置系统登录文件、/usr/share放置共享数据等等。这种定义使得软件可以预测已安装文件和文件夹的位置,用户可以预测已安装文件和文件夹的位置。
二、目录树directory tree
另外,在linux中,所有的文件与目录都有根/目录开始。所有/是所有目录及文件的源头然后层层分下来,有点像树状,因此我们把这种目录配置方式称为“目录树directory tree” 这个目录树的主要特性有:
1、目录树的起始为根目录/ (见图1-1)
2、每个目录不仅能使用本地端分区,也可以使用网络上的文件系统。例如: 可以利用网络文件系统 network file system NFS 服务器载入某个特定的目录等。
3、同时每一个文件在此目录树种的文件名都是独一无二的。
特别注意的是以下两个特殊目录:
.:表示当前目录,也可以用./来表示
..:表示上一层目录,也可以用../来表示。
(图1-1)
三、FHS目录结构
(图1-2)
如图1-2所示在FHS所有的文件和目录都出现在根目录”/”下,即使他们存储在不同的网络设备中。但是请注意的是,这些目录中的一部分可能不会在您linux系统上出现,这取决与系统是否包含某些子系统,例如 Xwindows 系统的安装与否。
这些目录中的绝大多数都在所有的linux操作系统中存在,并且一般都以大致类似的方法使用;然而,这里的描述是针对与FHS的并未考虑除linux平台以外的权威性。
目 录 |
描 述 |
/ |
第一层结构的根、整个文件系统层次结构的根目录 |
/bin |
需要在单用户模式可用的必要命令(可执行文件)面向所有的用户。例如 ls、cat、pwd、cp等. |
/sbin |
类似于/bin 存放系统二进制文件。因为其中大部分文件多是系统管理员使用的基本系统程序,虽然普通用户必要且允许时可以使用,但一般不会面向普通用户使用。例如命令:例如: init、 ip、 mount。等 |
/boot |
存放引导程序文件;时常是一个单独的分区。Boot目录内存放都是系统启动的重要文件及目录例如vmlinuz(实际是系统所使用的kernel即内核文件)、System.map (系统kernel中的变量对应表)、initrd(系统启动时的模块供应主要来源)、grub(启动管理程序目录,多存放grub启动时所需画面、配置及各阶段文件)。 |
/dev |
必要的设备文件并包含linux系统所使用的所有外部设备。例如:/dev/null、/dev/zero 、/dev/cdrom等。 |
/usr |
包含绝大多数的(多)用户工具和应用程序,存放用户使用的系统命令和应用程序等信息像命令帮助文件等。例如:/usr/bin、/usr/local、/usr/lib等。值得注意的是/usr目录是曾近还是用户的家目录后来被/home 目录取代。 |
/etc |
系统程序的配置文件;包含很多文件许多网络配置文件也在/etc 中。例如/etc/rc、/etc/passwd 、/etc/sysconfig、/etc/fstab等 |
/srv |
存放一些服务器之后启动之后需要提取的数据。包含由此系统提供的站点特定数据。指定这个的主要目的是让用户可以找到.特定服务的数据文件的位置,并由此提供服务。 |
/home |
用户目录也是根目录下的一个子文件,是存放每个系统用户的文件的地方。普通用户的家目录集中位置,用户名同名子目录 |
/opt |
表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包。 |
/mnt |
录是系统管理员临时安装(mount)文件系统的安装点。程序并不自动支持安装到/mnt 。/mnt 下面可以分为许多子目录,例如/mnt/dosa 可能是使用MSDOS文件系统的软驱,而/mnt/exta 可能是使用ext2文件系统的软驱,/mnt/cdrom 光驱等等。 |
/lib |
目录包含引导系统和在根文件系统中运行命令所需的内核模块和共享库映像(C编程代码库)。通过/ bin和/ sbin中的二进制。库可以通过其* .so的文件名扩展名容易地识别。等同于共享库的Windows将是一个DLL(动态链接库)文件。它们对于基本系统功能至关重要。内核模块(驱动程序)位于子目录/ lib / modules /'kernel-version'中。为了确保正确的模块编译,你应该确保/ lib / modules /'kernel-version'/ kernel / build指向/ usr / src /'kernel-version',或者确保Makefile知道内核源代码本身的位置。 |
/lib64 |
等同于/lib. 64 位版本通常存放在文件系统的/lib64 目录树中,而 32 位版本则位于 /lib 目录树中。 您可能会在 64 位 Linux系统中同时发现/lib/libc-2.11.1.so以及 /lib64/libc-2.11.1.so . 这两个库允许 32 位及 64 位 C 程序在 64 位 Linux 系统当中运行。 |
/tmp |
此目录主要包含临时需要的文件。 许多程序使用它来创建锁定文件和临时存储数据。 不要从这个目录中删除文件,除非你知道你在做什么!这些文件对许多当前运行的程序很重要,删除它们可能会导致系统崩溃。 通常它不会包含超过几KB。 在大多数系统上,此目录在引导或由本地系统关闭时清除。 这一点的基础是历史先例和普遍做法。 但是,它不是要求,因为系统管理不在FSSTND(后来的FHS)的范围内。 因此,人和程序不能假定/ tmp中的任何文件或目录在程序的调用之间保留。 |
参考资料:
以上内容多取材于互联网各大博客论坛以及以下网站。
Linux文档项目http://www.tldp.org
Linux 目录系统层次介绍:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
文件系统层次结构标准FHS维基百科介绍:https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E6%A0%87%E5%87%86
原创文章,作者:秋季,如若转载,请注明出处:http://www.178linux.com/51929