Linux文件系统层次结构标准FHS详解

来源:互联网 发布:命令与征服 将军 知乎 编辑:程序博客网 时间:2024/06/05 11:32

(本文转载自Silencio的网易博客)

Linux和UNIX的文件系统是一个以“/ “为根的阶层式的树状文件结构,/ 因此被称为根目录。所有的文件和目录都置于根目录/ 之下。根目录/下面有/bin,/home,/usr等子目录。在早期的UNIX系统中,各个厂家各自定义了自己的UNIX系统的文件系统构成,比较混乱。 


       为了避免在Linux也产生同样的问题,在Linux面世不久,就开始了对Linux文件系统进行标准化的活动,于1994年推出了名为 FSSTND(Filesystem Standard)的Linux文件系统层次结构标准。之后,FSSTND标准吸引了UNIX社团的开发人员,他们把FSSTND扩大到UNIX系统,FSSTND就变为FHS (Filesystem Hierarchy Standard)。2001年3月,FHS 2.2版本发布,2004年1月29日发行了最新版本2.3。

        FHS标准使得众多的Linux发布包有了可以遵循的标准,使得软件和用户可以预测已经安装了的文件和目录的位置。它定义了如下的内容。
定义了文件系统中每个区域的用途
定义了所需要的最小构成的文件和目录
给出了例外处理和矛盾的特殊例子

       FHS实际上仅是规范在根目录(/)下面各个主要目录应该放什么样的文件。FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc应该要放置设置文件,/bin与 /sbin则应该要放置可执行文件等等。第二层则是针对 /usr及 /var这两个目录的子目录来定义。例如 /var/log放置系统登录文件、/usr/share放置共享数据等等。

        由于FHS仅是定义出最上层(/)及子层(/usr, /var)的目录内容应该要放置的文件数据,因此,在其他子目录层级内,就可以随开发人员自行配置了。举例来说,FC4的网络设置数据放在 /etc/sysconfig/network-script/ 目录下,但SuSE Server 9则是将网络放在 /etc/sysconfig/network/ 目录下,目录名称是不同的。

        另外,在Linux中,所有的文件与目录都由根目录 / 开始。那是所有目录与文件的源头。然后再一个一个分支下来,有点像树状。因此,我们也称这种目录配置方式为:“目录树(directory tree)”。这个目录树主要特性有:

        目录树的起始点为根目录(/, root)。

        每一个目录不仅能使用本地端分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。

        每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

        此外,根据文件名写法的不同,也可将路径(path)定义为绝对路径(absolute)与相对路径(relative)。绝对路径为:由根目录(/)开始写起的文件名或目录名称,例如 /home/dmtsai/.bashrc;相对路径为相对于当前路径的文件名写法。例如 ./home/dmtsai或 ../../home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法。必须要了解,相对路径是以“当前所在路径的相对位置”来表示的。举例来说,当前在 /home目录下,如果想要进入 /var/log目录时,怎么写呢?

cd /var/log(absolute)

cd ../var/log(relative)


因为在 /home中,所以要回到上一层(../)之后,才能继续向 /var移动。

特别注意这两个特殊的目录:

.:表示当前目录,也可以使用 ./ 来表示。

..:表示上一层目录,也可以 ../ 来表示。

   .. 的目录概念很重要,你常常会看到cd .. 或 ./command之类的命令方式,就是表示上一层与当前所在目录的工作状态。此外,针对“文件名”与“完整文件名(由 / 开始写起的文件名)”的字符限制大小为:

        单一文件或目录的最大容许文件名为255个字符。包含完整路径名称及目录(/)的完整文件名为4096个字符。

        我们知道,/var/log/ 下面有个文件名为message,这个message文件的最大文件名可达255个字符。var与log这两个上层目录最长也分别可达255个字符。但总的来说, /var/log/messages这样完整的文件名最长则可达4096个字符。

        提示:root在Linux里面的意义很多。如果从“账号”的角度来看,root指“系统管理员”身份,如果以“目录”的角度来看,root指的是根目录,就是 / 。要特别注意。


目录内容和用途:

/根目录/bin一般用户使用的命令/boot放置内核及LILO、GRUB等导引程序(bootloader)的文件,用于启动。/dev硬盘,分区,键盘,鼠标,USB,tty等所有的设备文件都放在这个目录。/etc系统的所有配置文件都存放在此目录中。/home用户空间,所有的用户都是用此空间。/lib共享连接库,如C库和C编译器等等。/media挂接CD-ROM等设备的目录/mnt移动设备文件系统的挂点/opt存放后来追加的用户应用程序/root管理员之家/sbin存放系统管理所需要的命令/tmp临时文件目录,重新启动时被清除/usr存放只能读的命令和其他文件。
/usr/X11R6 X Window系统
/usr/bin 用户和管理员的标准命令
/usr/include c/c++等各种开发语言环境的标准include文件
/usr/lib 应用程序及程序包的连接库
/usr/local/ 系统管理员安装的应用程序目录
/usr/local/share 系统管理员安装的共享文件
/usr/sbin 用户和管理员的标准命令
/usr/share 存放使用手册等共享文件的目录
/usr/share/dict 存放词表的目录(选项)
/usr/share/man 系统使用手册
/usr/share/misc 一般数据
/usr/share/sgml SGML数据(选项)
/usr/share/xml XML数据(选项)/var存放应用程序数据和日志记录的目录,例如,Apache Web服务器的文档一般就放在/var/www/html下。
/var/cache 应用程序缓存目录
/var/account 处理账号日志(选项)
/var/crash 系统错误信息(选项)
/var/games 游戏数据
/var/lib  各种状态数据
/var/lock 文件锁定纪录
/var/log 日志记录
/var/mail 电子邮件
/var/opt /opt目录的变量数据
/var/run 进程的标示数据
/var/spool 存放电子邮件,打印任务等的队列目录。
/var/spool/rwho 
/var/tmp 临时文件目录
/var/yp NIS等黄页数据(选项)

       这个标准被设计的目的是给Unix发行版开发者,应用程序开发者,和系统实现者使用的,它的初终是作为一个参考,并不是来教用户怎么管理unix文件系统或目录结构的。
     当前linux用户也面临一些问题, 由于FHS仅定义了最上层(/)及子层(/usr, /var)的目录内容应该要放置的文件数据,所有现有Linux不同发行版中,其他二层下面的内容各部相同,有时会给用户迁移到不同Linux发行版上带 来麻烦,比如/etc下面的对统一功能的不同配置文件放置的位置不同,导致用户花费大量时间去熟悉新的系统。其实有些比较稳定的共同的功能应用程序的配置 文件也应该在FHS中给出定义,来指导发行版供应商和程序开发者进行开发。因此FHS也许应该更进一步的定义某些目录文件,进一层的细化文件层次结构,促 进linux发展。

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 oppa79手机开不开机怎么办 黑衣服洗完发白怎么办 白衣服被黑衣服染色了怎么办 评职称单位领导不推荐怎么办 支付宝被限制收款怎么办 在淘宝上下单想写两个地址怎么办 注销了的支付宝怎么办 狗狗黑色毛发红怎么办 蘑菇街直播间被禁言了怎么办 收了发票不付款怎么办 退款要先收发票怎么办 淘宝退款了又收到货怎么办 商家收货后拒绝退款怎么办 申请退货退款卖家不处理怎么办 淘宝买东西换货卖家不发货怎么办 淘宝自动默认付款没发货怎么办 支付宝支付失败可钱扣了怎么办 苹果nfc感应坏了怎么办 老鼠添过的盘子怎么办 ie浏览器页面显示网页错误怎么办 Ⅵvo手机声音小怎么办 小米手机预约错了怎么办 小米note二手没解锁怎么办 艾灸后脸色越黑怎么办 淘宝软件类目不能上架宝贝怎么办 ae中没有mpg格式怎么办 淘宝小二处理不公怎么办 遇到卖保险的人怎么办 租房合同没理家电清单怎么办 普雪油烟机坏了怎么办 我累了 真的累了怎么办 u盘15g变成4g了怎么办 属兔的买了东户怎么办 玩时时彩输了2万怎么办 胸变的又软又小怎么办 u盘16g变成4g了怎么办 1岁宝宝吃了就吐怎么办 脚崴了肿了很痛怎么办 九格拼图5在9那怎么办 4s锁屏密码忘了怎么办 6p触屏偶尔乱跳怎么办