linux目录管理遵循FHS标准,主要目标是希望让使用者可以了解已安装软件通常放置于哪个目录上,所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都遵循FHS的标准。也就是说FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。
事实上,FHS是根据过去的经验一直在持续改版的,FHS依据文件系统的使用的频繁与否是否允许使用者随意改动,而将目录定义为四种交互作用的形态,用其表格来说:

上表中的目录就是一些代表性的目录,四个类型解释如下:

  • 可分享的:可以分享给其它系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载的目录;
  • 不可分享的:自己机器上面运作的装置档案或者是与程序运行有关的socket档案等,由于仅与自身机器有关,所以不能分享给其他主机;
  • 不变的:有些数据是不会经常变动的,跟随着distribution而不变动。例如函式库、文件说明文件、系统管理员所管理的主机服务配制文件等等;
  • 可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。

事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是以下三个目录:

  • /(根目录):与开机系统有关;
  • /usr(unix software resource):与软件安装、执行有关;
  • /var(variable):与系统运作过程有关。

以下是三个目录的详细解释:

  1. 根目录的意义与内容:
    根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等动作有关。由于系统开机时需要特定的软件、核心档案、开机所需程序、函数库等档案数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。因为根目录是这么重要,所以FHS的要求方面,他希望根目录不要放在非常大的分割槽内,因为越大的分割槽放入的数据就会越多,如此一来,出现问题的机会就越大,因此FHS标准建议:根目录所在的分割槽越小越好,且应用程序所装的软件最好不要与根目录放在同一分割槽内,保持目录越小越好,有鉴于上述说明,FHS标准定义出根目录底下应该存在以下目录,如下表:

    除了这些目录内容之外,另外需要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载,其他分割槽则是在开机完成之后才会持续进行挂载,因此根目录下与开机过程有关的目录不能与根目录放到不同的分割槽中,哪些目录不能放到不同的分割槽中去,有以下这些:
    1. /etc:配制文件
    2. /bin:重要执行文件
    3. / dev:所需要的装置档案
    4. /lib:执行档所需要的函数库与检核心所需要的模块
    5. /sbin:重要的系统执行文件
    以上五个目录千万不可与根目录分开在不同的分割槽。
  2. /usr的意义与内容
    依据FHS定义,/usr里放置的数据属于可分享与不可变动的,如果你知道如何通过网络进行分割槽的挂载,那么/usr确实可以分享给局域网内的其它主机来使用。usr是Unix Software Resource的缩写,也就是:Unix操作系统软件资源所放置的目录,而不是用户的数据。FHS建议软件开发者应该将他们的数据合理的分别放置在这个目录下的次目录,而不是要自行建立该软件独立的目录。因为是所有系统默认的软件都会放置在/usr目录里,因此这个目录有点类似Windows系统的C:\Program Files和C:\Windows,系统刚装完时,这个目录会占用最多的硬盘容量。一般来说,/usr的次目录建议有以下这些:
  3. /var的意义与内容
    如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运行后才会逐渐占用硬盘容量的目录。因为/var目录主要针对常态性变动的档案,包括缓存(cache)、登录档(log file)及某些软件运行所产生的档案,包括程序档案(lock file,run file),或者例如MySql数据库档案等待。/var包含以下目录:

linux学习日记之目录配制的更多相关文章

  1. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  2. linux学习心得之目录树开端与/etc(图文)

    linux学习心得之目录树开端与/etc(图文) linux中“一切皆文件”,学习linux一年了,在学习过程中对目录树的一点心得,分享给大家,有不对的地方敬请斧正. 不多说了,先上图: 根目录: / ...

  3. Linux 学习日记 1

    这是我第一次系统地学习Linux,希望通过这个学习日记收获一些东西把-- @_@ Grub - 启动管理器   在启动时让用户选择要启动的系统.(但是windows比较霸道--重装windows后会将 ...

  4. Linux学习日记——字符处理

    (菜鸡学习日记 各种使用命令只列举了常用几种,发现错误望指正) 一.管道 在Linux 中,管道就是一个固定大小的缓冲区,大小为一页4K.它是一种通信的机制,可以使用管道符“ | ” 来连接进程,连接 ...

  5. Linux学习教程 | 全文目录

    本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...

  6. Linux学习日记之磁盘与档案系统

    主要定义 磁盘的物理组成磁盘主要由圆形磁盘(多张).机械手臂.磁头等组成.每张磁盘都有不同的磁道,半径相同的磁道组成了磁柱,沿着中心划线可将磁盘分成若干扇区,每个扇区的大小是512Bytes. 磁盘分 ...

  7. Linux学习日记-(一)

    一.为什么学习Linux 大学时开始接触Linux,最开始学习的是RedHat(小红帽),感觉Linux好像很久不见的老朋友,用起来很舒服(虽然我们用的是DotNet).很喜欢它的命令模式,让我能接触 ...

  8. linux学习日记之老男孩

    2016年10月5日企业面试题:cp 命令复制文件是如果有覆盖可能的话如何去除确认步骤,如:将/mnt/text.txt 复制 到/temp/text.txt,去除覆盖确认命令.方法:1.加全路径的c ...

  9. Linux学习日记——源码编译Apache

    [本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...

随机推荐

  1. Mac OS sierra app is damaged

    想升级系统,然后发生如题错误,谷歌之,解决方法如下(希望帮助大家): Step 1. Go to your applications folder. Step 2. Find the installe ...

  2. 2016福州大学软件工程第五、六次团队作业-Alpha阶段成绩汇总

    1.本次作业成绩统计结果: 本次Alpha阶段团队作业公布如下: 表格说明: PE:贡献百分比 YS:演示评分(满分15分) BK:博客评分(满分15分) SH:事后诸葛亮环节(满分5分) P:个人分 ...

  3. 02. Let & Const

    Let & Const let 基础用法 很简单就能说明这个问题 if(false) { var a = 'heihei' } a = undefined if(true) { var a = ...

  4. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. RabbitMQ修改端口号和心跳时间

    定读者正在Windows系列的操纵体系中装置好了Rabbit MQ后,请找到装置途径下的etc文件夹下,将rabbitmq.config.example备份一份,并点窜为config范例的文件,即为] ...

  7. Create a new Windows service on windows server2012

    netsh http add iplisten ipaddress=0.0.0.0:15901 sc.exe create "FPPService" binPath= " ...

  8. solr基本入门

    一直想接触下搜索,虽然之前也玩了下solr,但一直没深入,所以也都忘得差不多了,现在solr都6.1了,发展真快.重新拾起,记录下也好,为以后出问题查找起来快一点. 1.搜索最重要的概念就是倒排索引, ...

  9. Spring Boot 乐观锁加锁失败 - 集成AOP

    Spring Boot with AOP 手头上的项目使用了Spring Boot, 在高并发的情况下,经常出现乐观锁加锁失败的情况(OptimisticLockingFailureException ...

  10. java日期工具类

    public class UtilDate { /** 年月日时分秒(无下划线) yyyyMMddHHmmss */ public static final String dtLong = " ...