文章目录

  • 一、根目录 (/) 的意义与内容
  • 二、/usr/ 的意义与内容
  • 三、/var/ 的意义与内容
  • 四、目录树(directory tree)
  • 五、绝对路径与相对路径

FHS 是 File System Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux 版本采用这种文件组织形式,类似于 Windows 操作系统中 c 盘的文件目录,FHS 采用树形结构组织文件。FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

根据 FHS(Filesystem Hierarchy Standard) 的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。

FHS 针对目录树架构仅规定了三个目录下应该放置什么数据:

  1. / (根目录):与开机系统有关;

  2. /usr/ (unix software resource):与软件安装/执行有关;

  3. /var/ (variable):与系统运作过程有关。

由于 FHS 仅是定义出最上层(/)及次层(/usr/, /var/)的目录内容应该要放置的文件或目录数据, 因此,在其他次目录层级内,就可以随开发者自行来配置了。

一、根目录 (/) 的意义与内容

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在FHS的要求方面,他希望根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和 Windows 的 C 盘一个样。

要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载。因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。

哪些目录不可与根目录分开呢?如下这些:

/etc:配置文件

/bin:重要执行档

/dev:所需要的设备文件

/lib:执行档所需的函式库与核心所需的模块

/sbin:重要的系统执行文件

这五个目录不可与根目录分开在不同的分区。

二、/usr/ 的意义与内容

依据 FHS 的基本定义,/usr里面放置的数据属于可分享的与不可变动的(shareable, static), 如果你知道如何透过网络进行分区的挂载(例如在服务器篇会谈到的NFS服务器),那么/usr确实可以分享给局域网络内的其他主机来使用喔。

/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据啦。这点要注意。 FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。

因为是所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的C:\Windows\ + C:\Program files\这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。

三、/var/ 的意义与内容

如果 /usr/ 是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。

四、目录树(directory tree)

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

  1. 目录树的启始点为根目录 (/, root)
  2. 每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等
  3. 每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的

五、绝对路径与相对路径

除了需要特别注意的 FHS 目录配置外,在文件名部分我们也要特别注意。因为根据档名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。 这两种文件名/路径的写法依据是这样的:

  1. 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc

  2. 相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 http://www.cnblogs.com/home/dmtsai/ 等等。反正开头不是 /就属于相对路径的写法。

而你必须要了解,相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在 /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?

cd /var/log    # absolutecd ../var/log  # relative

因为你在 /home 底下,所以要回到上一层 (../) 之后,才能进入到目录 /var 下,特别注意这两个特殊的目录:

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

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

这两个 ... 目录概念是很重要的,你常常会看到 cd .../command 之类的指令下达方式, 一个表示返回到上级目录,一个表示执行当前目录下的一个指令。

**实例1:**如何先进入 /var/spool/mail/ 目录,再进入到 /var/spool/cron/ 目录内?
命令语句如下所示:

cd /var/spool/mail
cd ../cron

说明:
由于/var/spool/mail与/var/spool/cron是同样在/var/spool/目录中。如此就不需要在由根目录开始写起了。这个相对路径是非常有帮助的,尤其对于某些软件开发商来说。 一般来说,软件开发商会将数据放置到/usr/local/里面的各相对目录。 但如果用户想要安装到不同目录呢?就得要使用相对路径。

**实例2:**网络文件常常提到类似 ./run.sh 之类的数据,这个指令的意义为何?

说明:
由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。./ 代表本目录的意思,所以 ./run.sh 代表执行本目录下名为 run.sh 的文件

官方文档地址:
http://www.pathname.com/fhs/

FHS(Filesystem Hierarchy Standard 文件系统层次化标准)相关推荐

  1. 1.FHS(Filesystem Hierarchy Standard)文件系统层级标准--重点

    day03 1.FHS(Filesystem Hierarchy Standard)文件系统层级标准–重点 文件系统: 对于一个存储设备( 或者分区)明确存放文件的方法和数据结构类.xfs / 系统所 ...

  2. FHS(Filesystem Hierarchy Standard)文件系统目录标准

    内容源于: 鸟哥的linux私房菜 链接如下: Linux 的文件权限与目录配置 目录 FHS 目录规则 目录树 FHS(Filesystem Hierarchy Standard): FHS依据文件 ...

  3. linux FHS pdf,linux FHS(Filesystem Hierarchy Standard)

    文件系统层次标准(Filesystem Hierarchy Standard,FHS):规范了在根目录下各个主要目录应该放什么样的文件. linux的目录配置:根据FHS定义,每个目录内应该放置的文件 ...

  4. Linux 文件系统层级标准 Filesystem Hierarchy Standard (FHS)3.0 基本全章节中文翻译

    本文章所有内容不允许以任何形式进行转载.复制.存档或分发等,为了避免翻译过程中对标准内容理解有误.或语言组织不严谨等造成的不能100%表达或阐述原标准的思想和内容,从而误导读者或造成错误等,强烈要求读 ...

  5. Filesystem Hierarchy Standard (FHS)

    Linux目录配置的依据:FHS,即文件系统层次结构标准. FHS的主要目的是让用户了解已安装的软件放置在哪个目录下,即FHS的重点在于规范每个特定的目录下应该放置什么样的数据. FHS依据文件系统使 ...

  6. Linux 中的FHS文件系统风格标准---File Hierarchy Standard

    文件系统层次标准(Filesystem Hierarchy Standard,FHS):规范了在根目录下各个主要目录应该放什么样的文件. linux的目录配置:根据FHS定义,每个目录内应该放置的文件 ...

  7. FHS—文件系统层次结构标准

    文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)定义了类UNIX操作系统下文件和目录放置的要求和准则,由 Linux 基金会维护. 大多数类 Unix 操作系 ...

  8. Linux 文件系统层级标准

    本文章所有内容不允许以任何形式进行转载.复制.存档或分发等,为了避免翻译过程中对标准内容理解有误.或语言组织不严谨等造成的不能100%表达或阐述原标准的思想和内容,从而误导读者或造成错误等,强烈要求读 ...

  9. Linux文件系统层次标准

    前言 Linux文件系统层次标准,英文全称Filesystem Hierarchy Standard,英文简称FHS. 由于利用Linux来开发产品的团队和个人实在太多了,如果每个人都以自己的想法来配 ...

最新文章

  1. 概述自动机器学习(AutoML)
  2. x3650m5不自动进系统_自动起停系统不工作?可能有这几种情况
  3. 32岁被裁,拿N+1,我高兴地失业了
  4. UOJ #586. 旅行问题
  5. python3(十四)Python 异常处理
  6. 连接maven_如何在Eclipse中使用Maven工程连接远程的Spark
  7. 远控免杀专题6---Venom免杀
  8. Mycat和Mysql搭建高可用企业数据库集群
  9. php 请求远程链接
  10. Jmeter (二十五)逻辑控制器 之 Random Controller and Random order Controller
  11. Vissim与python(IntelliJ IDEA )联调环境配置
  12. next项目部署到服务器pm2进程守护
  13. Windows开启ssh服务配合 IOS 快捷指令完成骚操作
  14. RPS基准点系统 2020
  15. QGC源码分析——航向规划中航点编辑流程(QGroundControl)
  16. 为什么现在的视频都会加入自动字幕功能?
  17. Python实战项目:基于jupyter notebook处理16年美国总统大选数据
  18. c语言如何实现多线程VC,vc多线程(c++多线程)
  19. 基于Java的宿舍管理系统
  20. jenkins git can't work ERROR: Timeout after 10 minutes ERROR: Error fetching remote repo 'origin'

热门文章

  1. jdbc连接gp单例模式_JDBC连接备忘单
  2. 从事java编程技能要求_5道Java视频课程,提高您的编程技能
  3. jolokia_使用WildFly 9和Jolokia监视DevOps样式
  4. 无处不在_Java无处不在:使用DukeScript在任何地方运行一次编写
  5. java中集合选取怎么选_集合中的可选
  6. jersey客户端_每个客户使用Jersey处理的Cookie
  7. jboss fuse 教程_在JBoss Fuse / Fabric8 / Karaf中使用Byteman
  8. Java 14:有用的NullPointerException消息
  9. 成为Java流大师–第5部分:将联接的数据库表转换为流
  10. 将指标标签与MicroProfile Metrics 2.0结合使用