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. arch+xfce4系统配置

    音量控制快捷键插件: sudo pacman -S xfce4-volumed

  2. CSS之表单元素

    表单就是收集用户信息的,就是让用户填写的.选择的. 1                <div> 2                         <h3>欢迎注册本网站&l ...

  3. 查看 SHA1

    keytool -v -list -keystore C:\Users\tianyingzhong\.android\debug.keystore 输入密钥库口令: android android

  4. SQL Server 2008 允许远程连接的配置

    如果无法通过IP地址远程连接你的SQL Server 2008服务器,可以参考下面的内容进行设置.在进行下述设置之前,应该确保你的网络已经安装设置完毕,服务器已经正常连接到网络中. 1.单击Windo ...

  5. 使用ab对nginx进行压力测试

    nginx以高并发,省内存著称. 相信大多数安装nginx的同学都想知道自己的nginx性能如何. 我想跟大家分享下我使用ab工具的压力测试方法和结果, ab是针对apache的性能测试工具,可以只安 ...

  6. mysql二级索引

    以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引.如果您的表上定义有主键,该主键索引是聚集索引.如果你不定义为您的表的主键 时,MySQL取第一个唯一索引(unique)而且只含非 ...

  7. 2016百度之星 资格赛ABCDE

    看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...

  8. sql注入时易被忽略的语法技巧以及二次注入

    那些容易被忽略.容易被弄错的地方 sql注入时的技巧 ========================================================================= ...

  9. 网络第二节——AFNworking

    /** 要使用常规的AFN网络访问 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; ...

  10. 分布式session的实现

    一.分布式Session的几种实现方式 1.基于数据库的Session共享 2.基于NFS共享文件系统3.基于memcached 的session,如何保证 memcached 本身的高可用性?4. ...