文件系统通常采用分层结构实现:文件管理、目录管理、磁盘管理
文件控制块(File Control Block,FCB)是操作系统为每个文件建立的唯一数据结构,包含了全部文件属性。
通常把FCB汇集、组织在一起形成文件目录,文件目录含两种目录项,分别描述子目录和文件。
目录项格式按统一标准定义,全部由目录项构成的文件称为目录文件,保存在外存,查找文件时调入内存。
在树形目录结构中,一个文件的全名包括从根目录开始到文件为止,通路上遇到的所有子目录路径,又称为路径名
各子目录名之间用正斜线/(Unix)或反斜线\(win)隔开
一个硬盘分区可以组织成一颗子树,每棵子树可以对应于一个逻辑盘符(Win),也可以把众多子树嫁接成一棵大树(Unix)
 
Linux中,FCB分为文件名和索引节点inode,索引结点位置由inode号标识,放在磁盘inode区。
目录项仅包含文件名和inode号,称为基本目录项
目录文件永不为空,创建时自动包含两个特殊目录项:.指出自身inode入口,..指出父目录项的inode入口..
因此,新建目录时,目录文件自身inode中的i_nlink为2,上层目录文件inode中的i_nlink增加1
根目录的.和..都指向同一个inode
目录文件基本功能就是把文件名转换成此文件信息在磁盘上的物理位置。根据用户提供的文件路径名,采用顺序查找法从根目录或当前工作目录逐级查找路径名中的各子目录名,用其作为索引,逐层搜索各级目录文件,最终找到相匹配的文件目录项。
也可以采用一些优化办法加快查找目录的速度:
  • 目录表项是按键的顺序编排,则可以采用二分查找法
  • 采用杂凑法,把每个文件名经过变换函数变换成唯一的目录表表项
树型目录结构存在的一个问题是:当一个文件经过许多目录节点时,使用很不方便;系统在沿路径查找目录时,往往要多次访问文件存储器,使访问速度大大减慢。若把所有文件的目录都复制到主存,访问速度是加快了,但又增加了主存的开销。
一种有效办法是把常用和正在使用的那些文件目录复制进主存,这样,既不增加太多的主存开销,又可明显减少目录查找时间
系统可以为每个用户进程建立一张文件描述符表,当用户使用一个文件之前,先通过“打开”操作,把该文件有关目录信息复制到指定主存区域,有关信息填入文件描述符表,以建立用户进程和该文件索引的联系。当不再使用该文件时,使用“关闭”,切断用户进程和这个文件的联系,同时,若该目录已被修改过,则应更新辅存中对应的目录文件。
 
Linux根目录下有:
/bin:可执行文件(命令),所有用户均有权限
/boot:引导启动所需的东西,grub引导程序,vmlinuz文件(可引导的、压缩的linux内核)
/dev:一切装置和接口设备,如sd[a-z(分区号)]为SATA、SCSI、SAS、USB接口的硬盘,hd[a-z]为IDE设备
/home:系统默认的用户家目录,每一个用户有一个文件夹
             ~代表当前用户家目录,而~username代表某一个用户的家目录
/root:系统管理员用户的家目录,进入单人维护模式仅挂载家目录时,该目录就能拥有root的家目录
/usr/lib:库文件,一些程序使用的动态函式库,尤其是/lib/modules放置核心相关模块(驱动程序)
/media:可移除装置如软盘、光盘
/opt:第三方大型软件
/tmp:一般程序或正在执行的程序放置临时文件的地方
/mnt:挂载目录
/etc:几乎所有配置文件,一般使用者可查询但只有root有权限修改
/sbin:开机、修复、还原系统所需要的指令,root用户才能执行
/proc:系统实时信息,一个虚拟的文件系统,每次启动重新创建,放置的数据实际在内存中
            如cpuinfo、meminfo、version
/var       /var/lib/ :各服务产生的数据,如MYSQL的数据库默认写入/var/lib/mysql/
             /var/log/:系统日志,有dmesg(核心启动日志)        xferlog  (FTP服务用日志)  
                                                      messages(系统报错日志)    secure(安全日志)
                                                      maillog(邮件系统日志)         wtmp(登录日志)
                                                      cron(定制任务日志)
 
使用mkdir命令创建目录
[qlw@localhost ~]$mkdir -p test1/test2/test3/test4
#有了-p的选项可以自行建立多层目录
[qlw@localhost ~]$mkdir -m  test2
#有了-m的选项可以配置权限,否则系统会使用默认属性
rmdir 删除空目录
-p 连同上层空目录一起删除

操作系统-文件系统(3)Linux目录配置的更多相关文章

  1. Linux 目录配置

    一.Linux 目录配置标准:FHS FHS(Filessystem Hierarchy Standard) 的重点在于规范每个特定的目录下应该要放置什么样子的数据. FHS依据文件系统使用的频繁与否 ...

  2. Linux学习之路—Linux目录配置

    所有内容来自鸟哥私房菜 FHS标准的重点在于规范每个特定的目录下应该要放置什么样子的数据而已.事实上,FHS针对目录树架构仅仅定义三层目录下面应该放置什么数据,分别是: /(root,根目录):与开机 ...

  3. Linux目录配置——Linux目录配置标准:FHS

    事实上,FHS针对目录树架构仅定义出三层目录下应该放置哪些数据,分别是下面三个目录: 一./(根目录):与开机系统有关 根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一 ...

  4. Linux 目录配置标准:FHS

    目录 应放置内容 /bin 和/user/目录下的/bin/都是用来保存的系统命令 /sbin 和/user/目录下的/sbin是用来保存root的系统命令 /boot 这个目录主要放置开机所用的文件 ...

  5. Linux档案权限与目录配置

    一.档案权限: Linux 最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的档案数据,因此档案的权限管理就变的很重要了. Linux 一般将档案可存取的身份分为三个类别,分别 ...

  6. Linux基础学习:目录配置

    Linux 目录配置标准:FHS FHS:即Filesystem Hierarchy Stabdard,文件配置标准.其主要目的是希望用户可以了解已安装软件通常放置在哪个目录下. FHS根据文件系统使 ...

  7. 【转】第六章、Linux 的文件权限与目录配置

    原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...

  8. Linux 的文件权限与目录配置

    用户和用户组 文件所有者 (owner) 用户组概念 (group) 其他人概念 (others) Linux文件权限概念 1. Linux文件属性 要了解Linux文件属性,那么有个重要的命令必须提 ...

  9. 【Linux】目录配置

    为什么每套Linux distributions的配置文件.执行文件.每个目录内放置的文件其实都差不多?因为有一套需要依据的标准!我们底下就来瞧一瞧. 因为利用Linux来开发产品或distribut ...

随机推荐

  1. Java 继承与抽象类

    一.继承 1.概念 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法. 2.继承的格式&使用 ...

  2. java并发包提供的三种常用并发队列实现

    java并发包中提供了三个常用的并发队列实现,分别是:ConcurrentLinkedQueue.LinkedBlockingQueue和ArrayBlockingQueue. ConcurrentL ...

  3. 没有学历如何从事Java开发?

    学历成了当今社会一个衡量一个人能力的标准,未来只会越来越深入,也有的人说不要总是把学历挂嘴边,学历并不能代表能力,确实学历不能代表能力,但是学历是能代表一个的人学习深度,也是在职场上必备的一个敲门砖. ...

  4. Python Tuple(元组) cmp()方法

    描述 Python 元组 cmp() 函数用于比较两个元组元素.高佣联盟 www.cgewang.com 语法 cmp()方法语法: cmp(tuple1, tuple2) 参数 tuple1 -- ...

  5. SpringClould进行Devtools热部署

    当我们在使用SpringCloud搭建项目的时候,会有多个项目,每次修改东西的时候,都需要重新启动项目,这样的操作就比较繁琐. 为了提高工作的效率,避免每次频繁的重启项目,在子类pom文件中,我们可以 ...

  6. Android中Activity启动模式探索

    Android中启动模式(launchMode)分为standard, singleTop, singleTask, singleInstance四种,可通过AndroidManifest.xml文件 ...

  7. day14.推导式与生成器

    一.列表推导式 '''通过一行循环判断,遍历一系列数据的方式''' """ 推导式的语法: val for val in Iterable 三种方式: [val for ...

  8. Java课堂总结

    通过重载函数,来实现对不同类型的参数运算.

  9. spring data jpa 代码生成!!(精华帖)

    通过数据库动态生成自己想要生成的各种模板,需要了解grovery. view -> Tool Windows -> Database + -> Data source -> M ...

  10. 理解HTTP的POST和PUT的区别

    1.HTTP Methods HTTP Methods GET POST PUT HEAD DELETE PATCH OPTIONS GET is used to request data from ...