文件系统通常采用分层结构实现:文件管理、目录管理、磁盘管理
文件控制块(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. 超详细windows安装mongo数据库、注册为服务并添加环境变量

    1.官网下载zip安装包 官网地址https://www.mongodb.com/download-center/community?jmp=nav,现在windows系统一般都是64位的,选好版本. ...

  2. 编写优美Android注释的常用语法

    编写优美Android注释的常用语法   短期目标是定期能出一篇简文,希望自己能坚持下去~~~~( ̄_, ̄ )   附上Android君 今天要分享的是关于Android注释系统的一些强大功能!! 实 ...

  3. Python 为什么要有 pass 语句?

    本文出自"Python为什么"系列,请查看全部文章 关于 Python 中的pass语句,它似乎很简单(只有 4 个字母),即使是没有任何编程经验的初学者也能很快地掌握它的用法. ...

  4. 第一部分_Mac技巧

    原文是"池建强"的微信文章,公众号为"MacTalk" 第一天 直接在终端里输入 $ say "英文单词",Mac就会拼读该单词 第二天 使 ...

  5. 企业签名和TF签名哪个好?TF签名和企业签名怎么选?

    很多开发者在App无法上架Appstore,需要内测或者开放给苹果用户使用的时候,需要选择企业签名来帮助自己的App开放下载链接,给苹果用户使用.苹果企业签名的类型有很多,TF签名最近又很火爆,那么企 ...

  6. 简单的 Nginx+Tomcat 配置负载均衡集群

    简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...

  7. 一文打尽Java继承的相关问题

    相关文章: <面向对象再探究>:介绍了面向对象的基本概念 <详解Java的对象创建>:介绍了对象的创建.构造器的使用 在<面向对象再探究>这篇文章中已经笼统的介绍过 ...

  8. SqlServer 查询的几种方式以及数字函数、时间函数的应用总结(回归基础)

    --语法:select * from 表名 *表示查询所有字段数据 select * from Class select * from Student select * from RankingLis ...

  9. GIT pull 如何解决 fatal: refusing to merge unrelated histories

    在Github新建一个仓库,写了Readme.md,然后把本地一个已有内容的仓库上传. 先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无 ...

  10. Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)

    前言 在上一篇<Spring学习之——手写Spring源码(V1.0)>中,我实现了一个Mini版本的Spring框架,在这几天,博主又看了不少关于Spring源码解析的视频,受益匪浅,也 ...