fedora学习笔记 6:浅谈linux文件系统-阿里云开发者社区

开发者社区> 开发与运维> 正文

fedora学习笔记 6:浅谈linux文件系统

简介:
 文件系统是linux里非常重要的一个概念,这么一个重要而且常见的字眼理解起来并不容易,很多人对它认识相当模糊。对许多从windows平台迁移过来的用户来说,它更是一个思想上的挑战。

     1>文件系统的概念:术语“文件系统”在linux中有很多不同的概念。它既可指代磁盘分区或磁盘分区类型,也可指代分区的文件目录,也可指代文件的数据结构或组织方法等,在不同的语境中指代不同的涵义。
  我们要使用一块硬盘首先要合理规划分区,然后要在分区上创建文件系统,最后要挂载文件系统,这样才能使用。这里的文件系统指的就是磁盘分区类型,如 ext2、ext3、fat等。有时,大家会直接用文件系统来指代磁盘分区,如linux中所说的挂载一个文件系统。linux中最常用的文件系统是 ext3。
  我们进入linux系统根目录,运行ls -la命令,可以看到很多目录,如etc、bin、sbin、var、usr等等,这些目录还有其子目录;我们运行tree命令,可以看到这些目录边同其子目录形成了一个树形结构,最上面的是系统的根目录。所以我们说linux文件系统结构是树形结构。这里的文件系统指的是文件目录,文件系统结构即文件目录结构。
  linux通过挂载的方式对不同的文件系统进行组织和管理,从而形成一个总的、树形结构的文件系统。这句话里的两个文件系统都是什么意思呢?
 
  2>linux文件系统结构:前面我们讲,linux文件系统结构主要是指文件目录结构,这个文件系统结构是树形结构。那么我们如何理解这个树形结构呢?对比着windows文件系统结构来理解或许是个不错的办法。
  当你第一次进入linux文件系统时,你会发现,呈现在你面前的一切与windows是如此的不同:没有你熟悉的C盘、D盘或E盘,只有一个个目录!没错,这就是linux和windows在设备管理上的区别。
  我们知道windows系统中每一个磁盘分区都分配有一个盘符,每新增一个其它存储设备就要为它分配一个盘符。而linux不会为磁盘分区或其它存储设备分配盘符,只为它们分配目录。linux只有一个文件系统结构,这个文件系统结构以根目录开始,所有的本地文件系统,本地设备,以及所有的远程文件系统都表示为根目录的子目录,新增的设备或文件系统通过挂载的方式,挂载为根目录的子目录。
  明白了么?windows里的C盘、D盘或E盘都是独立的文件系统,操作系统有几个分区就有几个文件系统结构;linux不一样,它只有一个文件系统结构,所有的磁盘分区或其它存储设备都是这个树形结构的一个“树枝”。
 
  理解了树形结构以后,我们再来看看文件系统结构中的另一个概念:目录结构。
  前面我们讲,linux系统不会为磁盘分区或其它存储设备分配盘符,只会为它们分配目录;所有的本地或远程文件系统、设备等都表示为文件系统结构中一个子目录。那么,为什么要这样呢?因为目录为管理文件提供了一个方便而有效的途径。如果你理解linux把所有的设备都当作文件来管理的话,你就会发现这样的安排是多么的巧妙。linux中的设备都以文件的形式出现在/dev目录中,如/dev/lp0,这是打印机;再比如/dev/hda,这是电脑里的第一块硬盘。
  再换个角度:windows里的磁盘标识的盘符,既是数据存放位置映射的路径,也是存放数据的真实的文件系统;linux里的目录只是数据的逻辑路径,并非是数据就存放在那个目录里。那么它的数据在什么地方呢?或者在第一块硬盘上,也可能在第二块硬盘上。如:windows的 D盘里安装有一个软件,那么,这个D盘既是软件的安装路径,也是软件数据存放的地方;linux的/var/local下安装有一个软件,/var /local是这个软件的安装路径,软件的数据在哪里存放呢?那就要看/var这个目录建在哪个磁盘的哪一个分区上了。
 
  linux使用标准的目录结构,在安装系统时,就已经创建了完整的目录结构,并指定了每个目录的作用和其中的文件类型。
  下面是一个不完整的目录结构图:
  
  
  3>linux下的主要目录:上面那张目录结构图虽然不完整,但已经可以让我们大致了解linux的目录结构了,而且几个重要的目录也已经列出来了。
  bin目录:可执行程序目录。与之类似的还有:/sbin、/usr/bin等。
  boot目录:系统启动目录,里面有系统启动时必需的文件。
  dev目录:设备文件目录,里面存放着各种设备文件。
  etc目录:系统配置目录,系统运行的各种配置文件都在这里。
  usr目录:系统程序目录,这里放着各种程序文件。
  var目录:这个目录里存放的是经常扩充、变动的文件,如日志文件、数据库等。

本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/133661

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章