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. HDU3394:Railway

    传送门 点双练习. 对于一张图,询问有多少条边不属于任意一个点双和多少条边至少属于两个点双. 显然,一张图里有多少个桥就是第一问的答案. 对于第二问,考虑对于一个点双,如果其中的边数等于点数,那么这个 ...

  2. Neural Network Toolbox使用笔记1:数据拟合

    http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...

  3. coreseek操作

    开启服务$  /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf 重新索引: /usr/local/coresee ...

  4. 【原创】PageAdminCMS 前台SQL注入漏洞(2)

    之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...

  5. 轮播插件unsilder 源码解析(一)---使用

    啰嗦几句:学习的可以直接省略,一直本着写原生的插件想法,但是前天看了吕大豹的博客觉得自己都没有正经的写个jquery插件:所以在开始写之前我会先对几个比较热门的jquery的插件进行源码分析:至于为什 ...

  6. html5中画布和SVG的比较

    SVG是基于XML的图形语言,在DOM解析中其每个元素都是可以用的,这样就可以为SCG元素附加JavaScript事件处理器,实现更加丰富的效果. 在SVG中,每个被绘制的图形均被视为对象,如果SVG ...

  7. Gulp基础

    1.什么是gulp? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. 2.为什么使用gulp? gulp不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工 ...

  8. Jquery 小技巧

    [每个程序员都会的35个jQuery的小技巧]收集的35个jQuery的小技巧/代码片段,可以帮你快速开发

  9. postgresql中的CUBE函数

    数据函数简介添加汇总额外信息 数据 --复杂统计函数 CREATE TABLE t3 (color_type varchar(20), in_date varchar(30),color_count ...

  10. python模块引用问题(比较杂乱,懒得整理)

    1 在stackoverflows摘抄 If the import module in the same dir, use e.g: from . import core If the import ...