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. 【实践】Memcached实例解析

    一.关于Memcached Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是一种基于内存的Key-Value存储,用来存储小块的任意数据(字符串.对象).这些 ...

  2. 18. class

    Class 基本用法 class n { constructor(x,y) { this.x = x; this.y = y; console.log(x,y) } proint() { consol ...

  3. Linux简单的日志审计

    生产环境日志审计解决方案 所谓的日志审计,就是记录所有系统及相关的用户行为,并且可以自动分析.处理.展示(包括文本或者录像) 1)     :通过环境变量以及rsyslog服务进行全部日志审计(信息太 ...

  4. 接口测试 postman

    1.可以应用一些简单的测试点 2. api有多个域名,放进collection里面进行批量测试,点击左上角'runner'

  5. Le lié à la légèreté semblait être et donc plus simple

    Il est toutefois vraiment à partir www.runmasterfr.com/free-40-flyknit-2015-hommes-c-1_58_59.html de ...

  6. coreseek安装过程

    一.sphinx 全文检索 通过sphinx检索到id,然后到mysql里面拿到记录 什么是劝我呢检索?结构化数据: 具有固定格式或者长度的数据非结构化数据: 标题 内容 等不定长的数据非机构化数据还 ...

  7. form表单的属性标签

    form表单的常用标签 表单: <form id="" name="" method="post/get" action=" ...

  8. 推荐一篇关于java 学习的文章,感觉写的很不错

    ---恢复内容开始---    很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛 ...

  9. thinkphp 3.2 linux二级目录安装

    详解:http://document.thinkphp.cn/manual_3_2.html#url_rewrite 注意:linux系统对大小写敏感 服务器系统:linux (阿里云服务器) thi ...

  10. 深入理解javascript原型和闭包 (转)

    该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分--原型和闭包,当然,肯定少不了原型链和作用域链.帮 ...