文件系统概述
操作系统中与管理文件有关的软件和数据
Linux文件系统采用的是树形结构
Linux支持多种文件系统
Linux文件系统提供丰富的文件和目录操作命令
Linux文件系统的特点
1.Linux文件系统采用树形结构,从根目录root(/)开始。
2.Linux的虚拟文件系统允许众多不同类型的文件系统共存,并支持跨文件系统的操作。
3.Linux的文件是无结构字符流式文件,不考虑文件内部的逻辑结构,只把文件简单地看作是一系列字符的序列。
4.Linux的文件可由文件拥有者或超级用户设置相应的访问权限而受到保护。
5.Linux把所有的外部设备都看作文件,可以使用与文件系统相同的系统调用和函数来读写外部设备。
Linux文件系统的组成
/home
:用户主目录的基点目录,默认情况每个用户主目录都设在该目录下,如默认情况下用户 user01 的主目录是 /home/user01 ;/lib
:存放标准程序设计库目录,又叫动态链接共享库目录,目录中文件类似windows里的.dll文件;/etc
:存放系统管理和配置文件目录;/dev
:存放设备特殊文件目录,如声卡文件、磁盘文件等;/usr
:最庞大的目录,存放应用程序和文件目录;/proc
:虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息;/root
:系统管理员的主目录;/tmp
:存放公用临时文件目录。/sbin
,/usr/sbin
:系统级的命令与工具目录;/bin
,/usr/bin
:用户级的命令与工具目录;/usr/include
:C语言,内核编译所需要的头文件存放目录;/lib
,/usr/lib
:库文件存放目录,其中有表态库和动态库;/usr/src
:Linux源代码目录,编译内核时使用;/var
:通常用来存放一些经常变化的内容,比如各种网络服务的工作目录都在这里;
Linux文件系统类型
EXT文件系统
- Linux的第一个版本是基于Minix文件系统的。当Linux成熟时,引入了扩展文件系统(ext文件系统),ext是第一个专门为Linux设计的文件系统。但由于ext文件系统在稳定性,速度和兼容性方面存在不少缺陷,已经很少使用。
- Linux在1994年引入了二级扩展文件系统(second extended file system,ext2),相当高效和稳定,是Linux系统默认使用的文件系统。ext2文件系统是非日志文件系统,这在关键行业的应用是一个致命的弱点。
- ext2文件系统经过逐步改进形成了ext3文件系统,这个新的文件系统在设计时牢记了两点,一是成为一个日志文件系统,二是尽可能与原来的ext2文件系统兼容。
目前ext3文件系统非常稳定可靠,该文件系统具有如下特点:
- 高可用性
Linux系统使用ext3文件系统后,即使非正常关机,系统也不需要检查文件系统。 - 数据的完整性
ext3文件系统能够极大地提高文件系统的完整性,避免了意外关机对文件系统的破坏。 - 文件系统的速度
ext3文件系统的日志功能对磁盘的驱动器读写头进行了优化。 - 数据转换
由ext2文件系统转换成ext3文件系统非常容易。另外,ext3文件系统可以不经任何更改,直接加载成为ext2文件系统。 - 多种日志模式
ext3文件系统有三种日志模式EXT3三种日志模式:
- Journal模式:将所有数据和元数据的改变都记入日志,这种模式减少丢失每个文件所作修改的机会,但需要很多额外磁盘访问,是最安全和最慢的ext3日志模式;
- Ordered模式:只有对文件系统元数据的改变才记入日志,但保证数据在元数据之前被写入磁盘,是缺省的ext3日志模式;
- 写回(Writeback)模式:只有对文件系统元数据的改变才记入日志,数据和元数据被写入磁盘的顺序不保证,是在这三种日志模式中最快的模式。
其他文件系统
- MS-DOS
MS-DOS文件系统,DOS、Windows和OS/2操作系统上使用的文件系统。 - UMSDOS
扩展的MS-DOS文件系统。 - VFAT
Microsoft扩展的FAT文件系统,被Windows9x /2000 /XP使用。 - Proc
一种基于内存的伪文件系统,不占用磁盘空间,只是以文件的方式为访问Linux内核数据提供接口。 - ISO9660
一种针对ISO9660标准的CD-ROM文件系统。 - SYSV
System V/Coherent在 Linux 平台上的文件系统。 - NFS
Sun公司推出的网络文件系统。 - SMB
支持SMB协议的网络文件系统,可用于实现Linux与Windows的文件共享。 - FAT
它不是一个单独的文件系统,而是MS-DOS, umsdos 和vfat 文件系统的常用部分。 - swap
swap文件系统用于Linux的交换分区。 - Reiserfs
是Linux内核2.4.1以后支持的一种全新的日志文件系统。 - NTFS
Windows NT文件系统。 - HPFS
是Microsoft的LAN Manager中的文件系统,同时也是IBM的LAN Server和OS/2的文件系统,称为高性能文件系统。
不同版本的Linux系统所支持的文件系统类型和种类都会有所不同。Linux 允许众多不同类型的文件系统共存,并支持跨文件系统的操作,这是由于虚拟文件系统(Virtual File System,简称VFS)的存在。
虚拟文件系统是Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口;它也提供了内核中的一个抽象功能,允许不同的文件系统共存。系统中所有的文件系统不但依赖VFS共存,而且也依靠VFS协同工作。
文件和目录的基本概念
文件
文件是指由创建者定义的,具有文件名的一组相关元素的集合,文件可以是文本文档、图片、程序等。
Linux系统下的文件名长度根据不同类型的文件系统有所不同,最多可到255个字符。Linux下为文件取名必须遵守以下规则:
- 除了“/”外,所有的字符都可以使用;
- 转义字符最好不用,这些字符在Linux系统下有特定的含义,如“?”(问号),“*”(星号),“ ”(空格),“$”(货币符),“&”等;
- 避免使用“+”、“-”或“.”作为普通文件名的第一个字符(在Linux下以“.”开头的文件是隐藏文件);
- Linux系统的文件名大小写敏感,文件Memo和文件memo是两个不同的文件。
Linux操作系统支持多种文件类型,下面介绍常见的几种。
- 普通文件
普通文件也称为常规文件,是 Linux 中最一般格式的文件,包括系统文件、用户文件和库函数。 - 目录文件
目录文件是由文件目录信息构成的特殊文件,目录文件的内容不是应用程序和数据,而是用来检索普通文件的目录信息。 - 设备文件
在Linux中输入输出设备被看做特殊文件,称为设备文件。设备文件分两类,字符设备文件和块设备文件。设备文件存放在Linux的/dev
目录
• 其中/dev/tty
是表示终端设备的文件
• 字符串“crw-rw-rw-”的第一个字符“c”表示是字符设备文件
•/dev/sda1
表示USB移动存储设备的文件
• 字符串“brw-rw----”的第一个字符是“b”,表示是块设备文件, - 符号链接文件
符号链接文件是一种特殊类型的文件,它的内容只是一个字符串,该字符串可能指向一个存在的文件也可能什么都不指向。
目录
目录是Linux文件系统中的一种特殊文件,文件系统利用目录完成按名存取及对文件信息的共享和保护。
工作目录与用户主目录
- 工作目录
工作目录是用户在登录到Linux系统后所处于的目录,也称为当前目录。 - 用户主目录
是系统管理员增加用户时创建的(以后也可以改变),每个用户都有自己的主目录。普通用户的主目录在/home
下,root用户作为系统管理员,因为身份特殊所以有自己的主目录,在/root
下。
用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。如用户的登录名为user,其主目录通常为/home/user
。
路径
路径定义
路径是指从树型目录中的某个目录层次到某个文件的一条道路。
路径的构成要素
路径是由目录或目录和文件名构成的,中间用“/
”分开。
路径分为绝对路径和相对路径两类:
- 绝对路径
Linux系统中,绝对路径是从“/
”(根目录)开始的,也称为完全路径,如/home/user01
、/usr/bin
。 - 相对路径
Linux系统中,相对路径是从用户工作目录或用户主目录开始的路径,如./test
、../user1
、~/test
。 其中.
表示用户工作目录,..
表示工作目录的上级目录,~
表示用户主目录。