• linux文件结构、文件系统和挂载


    一 、Linux文件结构
      文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。
      目录提供了管理文件的一个方便而有效的途径。
      Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
       /根目录

    ┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
    ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
    bin home dev etc lib sbin tmp usr var
    ┃ ┃
    ┏━┻━┓ ┏━━┳━━┳━━┳━┻━┳━━┓
    ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
    rc.d cron.d X11R6 src lib local man bin

    ┏━━━┳━━┳━┻━┳━━━┓
    ┃ ┃ ┃ ┃ ┃
    init.d rc0.d rc1.d rc2.d …… linux bin lib src
      Linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和 windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。
      如果这样讲不好理解的话,我来举个例子:
      有一块硬盘,分成了4个分区,分别是/;/boot;/usr和windows下的fat
      对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。
      如果我把windows下的fat分区挂载到/mnt/winc下,(挂载??哦,别急,呵呵,一会就讲,一会就讲。)那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
      下面列出了linux下一些主要目录的功用。
      /bin 二进制可执行命令
      /dev 设备特殊文件
      /etc 系统管理和配置文件
      /etc/rc.d 启动的配置文件和脚本
      /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
      /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
      /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
      /tmp 公用的临时文件存储点
      /root 系统管理员的主目录(呵呵,特权阶级)
      /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
      /lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
      /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信  息。
      /var 某些大文件的溢出区,比方说各种服务的日志文件
      /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包  含:
      /usr/X11R6 存放X window的目录
      /usr/bin 众多的应用程序
      /usr/sbin 超级用户的一些管理程序
      /usr/doc linux文档
      /usr/include linux下开发和编译应用程序所需要的头文件
      /usr/lib 常用的动态链接库和软件包的配置文件
      /usr/man 帮助文档
      /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
      /usr/local/bin 本地增加的命令
      /usr/local/lib 本地增加的库
    二 、linux文件系统
    文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。
    三 、挂载文件系统
      由上一节知道,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。
    将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
    举个例子吧:
      根分区:
      /根目录

    ┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
    ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
    bin home dev etc lib sbin tmp usr var

    ┏━┻━┓
    ┃ ┃
    rc.d cron.d

    ┏━━━┳━━━┳━┻━┳━━━━┓
    ┃ ┃ ┃ ┃ ┃
    init.d rc0.d rc1.d rc2.d ……
      /usr分区 :
      usr

    ┏━━━━┳━━━╋━━━┳━━━┳━━━┓
    ┃ ┃ ┃ ┃ ┃ ┃
    X11R6 src lib local man bin
    ┃ ┃
    ┃ ┏━━━╋━━━┓
    ┃ ┃ ┃ ┃
    linux bin lib src
      挂载之后就形成了文章开始时的那个图。像不像挂上去的?
      注意:1、挂载点必须是一个目录。
      2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
    对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。
      挂载时使用mount命令:
    格式:mount [-参数] [设备名称] [挂载点]
      其中常用的参数有
      -t 指定设备的文件系统类型,常见的有:
      minix linux最早使用的文件系统
      ext2 linux目前常用的文件系统
      msdos MS-DOS的fat,就是fat16
      vfat windows98常用的fat32
      nfs 网络文件系统
      iso9660 CD-ROM光盘标准文件系统
      ntfs windows NT 2000的文件系统
      hpfs OS/2文件系统
      auto 自动检测文件系统
      -o 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的  有
      codepage=XXX 代码页
      iocharset=XXX 字符集
      ro 以只读方式挂载
      rw 以读写方式挂载
      nouser 使一般用户无法挂载
      user 可以让一般用户挂载设备
      提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。)
    三、Linux 文件系统类型有:
    ext、 ext2、 ext3、 ext4、以及最新的btrfs格式
    每种之间的关系,增加功能的升级版
     
    亲爱的自己,不要抱怨自己不够聪明、没有天赋,要记住,越努力,越幸运!
  • 相关阅读:
    Visual C# 2005中编写Socket网络程序
    [ASP.NET缓存BUG]这几天遇到的头痛问题之一,晚上遇到终于解决一劳永逸
    检测远程URL是否存在的三种方法<转>
    C#开源资源大汇总
    Asp.Net中动态页面转静态页面
    开发人员必进的网站
    基于反向代理的Web缓存加速——可缓存的CMS系统设计
    解决MVC3 服务器无法在已发送 HTTP 标头之后设置状态 问题
    HyperLink 控件控制图片宽度高度的几种方法
    C#进程注入
  • 原文地址:https://www.cnblogs.com/baiting0317/p/3267839.html
Copyright © 2020-2023  润新知