资料介绍
1.3 Linux文件及文件系统
在安装完Linux之后,下面先对Linux中一些非常重要的概念做一些介绍,以便进一步学习使用Linux。
1.3.1 文件类型及文件属性
1.文件类型
Linux中的文件类型与Windows有显著的区别,其中最显著的区别在于Linux对目录和设备都当作文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux中主要的文件类型分为4种:普通文件、目录文件、链接文件和设备文件。
(1)普通文件。
普通文件同Windows中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell脚本(shell的概念在第2章会进行讲解)、二进制的可执行程序和各种类型的数据。
(2)目录文件。
在Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。目录文件是Linux中存储文件名的惟一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构成了目录文件。因此,在对目录文件进行操作时,一般不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行操作。
另外,Linux系统中的每个文件都被赋予惟一的数值,而这个数值被称作索引节点。索引节点存储在一个称作索引节点表(Inode Table)中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有自己的索引节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。
Linux文件系统把索引节点号1赋予根目录,这也就是Linux的根目录文件在磁盘上的地址。根目录文件包括文件名、目录名及它们各自的索引节点号的列表,Linux可以通过查找从根目录开始的一个目录链来找到系统中的任何文件。
Linux通过目录链接来实现对整个文件系统的操作。比如,把文件从一个磁盘目录移到另一实际磁盘的目录时(实际上是通过读取索引节点表来检测这种动作的),这时,原先文件的磁盘索引号被删除,在新磁盘上建立相应的索引节点。它们之间的相应关系如图1.5所示。
图1.5 目录文件与索引节点关系
(3)链接文件。
链接文件有些类似于Windows中的“快捷方式”,但是它的功能更为强大。它可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。
(4)设备文件。
Linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用(在后面的Linux编程中可以更为明显地看出)。在Linux下与设备相关的文件一般都在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件。
n 块设备文件是指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等。
n 字符设备主要是指串行端口的接口设备。
2.文件属性
Linux中的文件属性如图1.6如示。
图1.6 Linux文件属性表示方法
首先,Linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。
第一个字符显示文件的类型。
n “-”表示普通文件。
n “d”表示目录文件。
n “l”表示链接文件。
n “c”表示字符设备。
n “b”表示块设备。
n “p”表示命名管道,比如FIFO文件(First In First Out,先进先出)。
n “f”表示堆栈文件,比如LIFO文件(Last In First Out,后进先出)。
n “s”表示套接字。
第一个字符之后有三个三位字符组:
n 第一个三位字符组表示文件拥有者(u)对该文件的权限。
n 第二个三位字符组表示文件用户组(g)对该文件的权限。
n 第三个三位字符组表示系统其他用户(o)对该文件的权限。
n 若该用户组对此没有权限,一般显示“-”字符。
小知识目录权限和文件权限有一定的区别。对于目录而言,r代表允许列出该目录下的文件和子目录,w代表允许生成和删除该目录下的文件,x代表允许访问该目录。
1.3.2 文件系统类型介绍
1.ext2和ext3
ext3是现在Linux(包括Red Hat,Mandrake下)常见的默认的文件系统,它是ext2的升级版本。正如Red Hat公司的首席核心开发人员Michael K.Johnson所说,从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度以及易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的推广。
2.swap文件系统
该文件系统是Linux中作为交换分区使用的。在安装Linux的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。
3.vfat文件系统
Linux中把DOS中采用的FAT文件系统(包括FAT12、FAT16和FAT32)都称为vfat文件系统。
4.NFS文件系统
NFS文件系统是指网络文件系统,这种文件系统也是Linux的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用NFS文件系统可以很方便地实现文件本地修改,而免去了一次次读写Flash的忧虑。
5.ISO9660文件系统
这是光盘所使用的文件系统,在Linux中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。
1.3.3 Linux目录结构
下面以Red Hat Enterprise 4 AS为例,详细列出了Linux文件系统中各主要目录的存放内容,如表1.1所示。
表1.1 Linux文件系统目录结构
目 录目 录 内 容
/binbin就是二进制(binary)的英文缩写。在这里存放Linux常用操作命令的执行文件,如mv、ls、mkdir等。有时,这个目录的内容和/usr/bin里面的内容一样,它们都是放置一般用户使用的执行文件
/boot这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用到其下的/boot/grub子目录
/dev该目录中包含了所有Linux系统中使用的外部设备。要注意的是,这里并不是存放外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备被当作文件进行操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问
/etc该目录下存放了系统管理时要用到的各种配置文件和子目录。如网络配置文件、文件系统、x系统配置文件、设备配置信息、设置用户信息等都在这个目录下。系统在启动过程中需要读取其参数并进行相应的配置
/etc/rc.d该目录主要存放Linux启动和关闭时要用到的脚本文件,在后面的启动详解中还会进一步地讲解
/etc/rc.d/init该目录存放所有Linux服务默认的启动脚本(在新版本的Linux中还用到/etc/xinetd.d目录下的内容)
/home该目录是Linux系统中默认的用户工作根目录。如前面在1.3.1节中所述,执行adduser命令后系统会在/home目录下为对应账号建立一个同名的主目录
/lib该目录是用来存放系统动态链接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行操作
/lost+found该目录在大多数情况下都是空的。只有当系统产生异常时,会将一些遗失的片段放在此目录下
/media该目录下是光驱和软驱的挂载点,Fedora Core 4已经可以自动挂载光驱和软驱
/misc该目录下存放从DOS下进行安装的实用工具,一般为空
/mnt该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下
/proc该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占用硬盘空间
/root该目录是超级用户登录时的主目录
/sbin该目录用来存放系统管理员的常用的系统管理程序
/tmp该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就是这里
/usr这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似于Windows下的Program Files的目录
/usr/bin系统用户使用的应用程序
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录
/srv该目录存放一些服务启动之后需要提取的数据
/sys这是Linux 2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/var这也是一个非常重要的目录,很多服务的日志信息都存放在这里
在安装完Linux之后,下面先对Linux中一些非常重要的概念做一些介绍,以便进一步学习使用Linux。
1.3.1 文件类型及文件属性
1.文件类型
Linux中的文件类型与Windows有显著的区别,其中最显著的区别在于Linux对目录和设备都当作文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux中主要的文件类型分为4种:普通文件、目录文件、链接文件和设备文件。
(1)普通文件。
普通文件同Windows中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell脚本(shell的概念在第2章会进行讲解)、二进制的可执行程序和各种类型的数据。
(2)目录文件。
在Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。目录文件是Linux中存储文件名的惟一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构成了目录文件。因此,在对目录文件进行操作时,一般不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行操作。
另外,Linux系统中的每个文件都被赋予惟一的数值,而这个数值被称作索引节点。索引节点存储在一个称作索引节点表(Inode Table)中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有自己的索引节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。
Linux文件系统把索引节点号1赋予根目录,这也就是Linux的根目录文件在磁盘上的地址。根目录文件包括文件名、目录名及它们各自的索引节点号的列表,Linux可以通过查找从根目录开始的一个目录链来找到系统中的任何文件。
Linux通过目录链接来实现对整个文件系统的操作。比如,把文件从一个磁盘目录移到另一实际磁盘的目录时(实际上是通过读取索引节点表来检测这种动作的),这时,原先文件的磁盘索引号被删除,在新磁盘上建立相应的索引节点。它们之间的相应关系如图1.5所示。
图1.5 目录文件与索引节点关系
(3)链接文件。
链接文件有些类似于Windows中的“快捷方式”,但是它的功能更为强大。它可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。
(4)设备文件。
Linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用(在后面的Linux编程中可以更为明显地看出)。在Linux下与设备相关的文件一般都在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件。
n 块设备文件是指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等。
n 字符设备主要是指串行端口的接口设备。
2.文件属性
Linux中的文件属性如图1.6如示。
图1.6 Linux文件属性表示方法
首先,Linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。
第一个字符显示文件的类型。
n “-”表示普通文件。
n “d”表示目录文件。
n “l”表示链接文件。
n “c”表示字符设备。
n “b”表示块设备。
n “p”表示命名管道,比如FIFO文件(First In First Out,先进先出)。
n “f”表示堆栈文件,比如LIFO文件(Last In First Out,后进先出)。
n “s”表示套接字。
第一个字符之后有三个三位字符组:
n 第一个三位字符组表示文件拥有者(u)对该文件的权限。
n 第二个三位字符组表示文件用户组(g)对该文件的权限。
n 第三个三位字符组表示系统其他用户(o)对该文件的权限。
n 若该用户组对此没有权限,一般显示“-”字符。
小知识目录权限和文件权限有一定的区别。对于目录而言,r代表允许列出该目录下的文件和子目录,w代表允许生成和删除该目录下的文件,x代表允许访问该目录。
1.3.2 文件系统类型介绍
1.ext2和ext3
ext3是现在Linux(包括Red Hat,Mandrake下)常见的默认的文件系统,它是ext2的升级版本。正如Red Hat公司的首席核心开发人员Michael K.Johnson所说,从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度以及易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的推广。
2.swap文件系统
该文件系统是Linux中作为交换分区使用的。在安装Linux的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。
3.vfat文件系统
Linux中把DOS中采用的FAT文件系统(包括FAT12、FAT16和FAT32)都称为vfat文件系统。
4.NFS文件系统
NFS文件系统是指网络文件系统,这种文件系统也是Linux的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用NFS文件系统可以很方便地实现文件本地修改,而免去了一次次读写Flash的忧虑。
5.ISO9660文件系统
这是光盘所使用的文件系统,在Linux中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。
1.3.3 Linux目录结构
下面以Red Hat Enterprise 4 AS为例,详细列出了Linux文件系统中各主要目录的存放内容,如表1.1所示。
表1.1 Linux文件系统目录结构
目 录目 录 内 容
/binbin就是二进制(binary)的英文缩写。在这里存放Linux常用操作命令的执行文件,如mv、ls、mkdir等。有时,这个目录的内容和/usr/bin里面的内容一样,它们都是放置一般用户使用的执行文件
/boot这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用到其下的/boot/grub子目录
/dev该目录中包含了所有Linux系统中使用的外部设备。要注意的是,这里并不是存放外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备被当作文件进行操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问
/etc该目录下存放了系统管理时要用到的各种配置文件和子目录。如网络配置文件、文件系统、x系统配置文件、设备配置信息、设置用户信息等都在这个目录下。系统在启动过程中需要读取其参数并进行相应的配置
/etc/rc.d该目录主要存放Linux启动和关闭时要用到的脚本文件,在后面的启动详解中还会进一步地讲解
/etc/rc.d/init该目录存放所有Linux服务默认的启动脚本(在新版本的Linux中还用到/etc/xinetd.d目录下的内容)
/home该目录是Linux系统中默认的用户工作根目录。如前面在1.3.1节中所述,执行adduser命令后系统会在/home目录下为对应账号建立一个同名的主目录
/lib该目录是用来存放系统动态链接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行操作
/lost+found该目录在大多数情况下都是空的。只有当系统产生异常时,会将一些遗失的片段放在此目录下
/media该目录下是光驱和软驱的挂载点,Fedora Core 4已经可以自动挂载光驱和软驱
/misc该目录下存放从DOS下进行安装的实用工具,一般为空
/mnt该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下
/proc该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占用硬盘空间
/root该目录是超级用户登录时的主目录
/sbin该目录用来存放系统管理员的常用的系统管理程序
/tmp该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就是这里
/usr这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似于Windows下的Program Files的目录
/usr/bin系统用户使用的应用程序
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录
/srv该目录存放一些服务启动之后需要提取的数据
/sys这是Linux 2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/var这也是一个非常重要的目录,很多服务的日志信息都存放在这里
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式Linux系统移植-(Linux文件系统)
- Linux操作系统分析与实践PDF电子书免费下载 15次下载
- 系统分析用户指南(英文版) 0次下载
- 系统分析方法 0次下载
- linux文件系统基础 0次下载
- Linux日志文件系统解析 0次下载
- 《Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统 0次下载
- 细数那些流行的 Linux 文件系统 0次下载
- 基于MATLAB的系统分析与设计信号处理 31次下载
- Linux源码分析系列之文件系统 51次下载
- Linux虚拟文件系统实现技术探讨 32次下载
- Linux操作系统分析 78次下载
- 构造嵌入式Linux的文件系统
- Linux文件系统课程 0次下载
- 系统分析ppt 0次下载
- 如何更改Linux文件系统终端显示颜色 183次阅读
- 单端口网络S参数测量系统分析 479次阅读
- Linux 文件系统层的主要结构 872次阅读
- C程序设计基础-文件系统 673次阅读
- 深入剖析Linux文件系统的架构 973次阅读
- Linux文件系统的类型及工作原理 564次阅读
- 深入剖析Linux内核虚拟文件系统 2952次阅读
- 基于Buildroot的Linux系统构建之根文件系统 2478次阅读
- 如何区别Linux文件系统呢? 3582次阅读
- 了解Linux默认文件系统的发展历史 6313次阅读
- 快速了解Linux文件系统 3546次阅读
- 文件系统是什么?浅谈EXT文件系统历史 5548次阅读
- 玩转Linux,先把文件系统搞懂 2009次阅读
- 制作ZedBoard上linux根文件系统(ramdisk) 1513次阅读
- 基于zynq的Linux根文件系统生成 5578次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多