1.文件系统定义
1)文件系统是一种组织计算机文件和资料的方法;
2)操作系统中封装的系统服务程序,实际上是一个软件程序,用来存储和管理计算机文件和资料。
2.文件系统分类
1)磁盘文件系统:NTFS(Windows下),EXT3(linux下,基于日志);
2)闪存文件系统(u盘):JFFS2,YAFFS;
3)数据库文件系统:BFFS,WINFS;
4)网络文件系统:NFS;
5)虚拟文件系统:VFS(Proc);
虚拟文件系统:在不同的文件系统,它的文件的定义和实现方式都不太一样,所以这些文件的移植性比较困难,虚拟文件系统针对不同的标准定义了一个标准的接口,也就是标准的实现方式,这些不同的标准接口,通过虚拟文件系统进行了一个处理,面向我们用户使用者来说,都是使用的同一个标准,由虚拟文件系统转换成具体的文件系统的方式。
3.文件系统功能
1)能定义文件的组织方式:文件结构;
2)提供建立和存取文件的环境:目录和文件;
3)能对文件存储器空间进行组织和分配;
4)负责文件存储并对存入的文件进行保护和检索;
5)负责建立文件,存入、读出、修改、转储文件,控制文件的存取,撤销文件等。
4.linux文件系统特点
1.EXT3
EXT3是基于日志方式的文件系统;
系统中每个文件都是有索引,用户对对文件的每一个操作都会记录日志,形成一个任务队列排着执行 (可以监控用户对文件系统的操作,比如:用户在进行操作的时候发生了什么错误,或者类似于崩溃这样的问题,它可以通过得到相应的记录从而进行很好地检修或更改修复,同时把用户的操作记录成日志后,它不会马上去执行,可以 形成一个任务队列排着一个一个执行), 性能是比较好。
2.SWAP
swap是交换分区的文件系统,类似windows的虚拟内存
虚拟内存的实现:两种方式。
第一种是进行内存的排列像内存池一样,进行一个优化。
第二种是把硬盘上的空间模拟成内存。
swap是Linux的虚拟内存,在安装时要设好大小,是物理内存的2倍(安装红帽会进行设置)
5.Linux文件系统特点
1.Linux系统中一切皆文件
Linux系统把设备(硬盘、软驱、光驱等)都看作文件,文件夹也看作文件(文件没有扩展名)。
2.Linux文件类型
3.Linux文件属性(不同的版本可能不同)
蓝色:目录
绿色:可执行
浅蓝色:链接
红色:压缩
灰色:其他
注:ls命令
它是linux下最常用的命令之一,ls(List即列表)跟dos下的dir命令是一样的都是用来列出目录下的文件
- ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
- ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
- ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。“@”表示符号链接、”|”表示FIFOS、”/”表示目录、”=”表示套接字。
- ls -s 在每个文件的后面打印出文件的大小。 size(大小)
- ls -t 按时间进行文件的排序 Time(时间)
- ls -A 列出除了”.”和”..”以外的文件。
- ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
- ls -L 列出文件的链接名。Link(链接)
- ls -S 以文件的大小进行排序
6.Linux文件系统的目录结构
没有分区这个概念
根目录下有很多子目录,不同的目录有不同的功能,var是存放变量,usr是用户的相关文件,有源文件,可执行文件,需要用到的包含文件,函数库和用户自己的程序等。
进入根目录
它没有分区,格式化会格式成很多块,没有逻辑盘,整个磁盘就一个结构,磁盘用完的话,它支持挂载,当磁盘用完后,它会挂载到mnt这个目录下。同时发现它的根目录和Windows是刚刚相反的,同时linux操作系统区分大小写。
Linux与Windows目录结构的区别
1.根目录:Linux:/;Windows:\
2.命名大小写区分:
Linux:命名区分大小写;
Windows:命名不区分大小写
3.结构管理
Linux:磁盘逻辑结构管理物理结构,格式化将磁盘分为很多的文件块区;
Windows:物理结构管理逻结构,先分区再格式化建立结构。
根目录下的一些重要目录含义
目录 | 说明 |
/bin | 常用的二进制命令目录。比如ls cp mkdir 等;和/usr/bin类似。 |
/boot | linux内核及引导系统程序所需的文件目录。安装系统分区的时候一般要分一个boot分区。常见分区为:/boot 200M swap内存的1.5倍,其余的都给/。 |
/dev | 设备文件目录,比如声卡,磁盘,光驱等。 |
/etc | 二进制安装包的配置文件默认路径和服务启动命令存放的目录。 |
/home | 普通用户的家目录默认数据存放目录。 |
/lib | 库文件存放目录 |
/lost+found | 在ext3文件系统中,当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。当系统在开机启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题,可能会有文件被移到这个目录中,可能需要用手工的方式来修复,或移到文件到原来的位置上。 |
/mnt | 一般是用于临时挂载存储设备的挂载目录,比如有cdrom,U盘等目录,直接插入光驱无法使用,要先挂载后使用。 |
/opt | 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure –prefix=/opt/目录,非必须这样,视习惯或规范而定。 |
/proc | 操作系统运行时,进程信息及内核信息(比如CPU,硬盘分区,内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见/etc/fstab。 |
/root | linux超级权限用户root的家目录。 |
/sbin | 大多涉及系统管理的命令的存放,是超级权限用户root可执行命令存放地,这个目录和/usr/sbin,/usr/X11R6/sbin或/usr/local/sbin目录是相似的。 |
/tmp | 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的,权限比较特殊。 |
/usr | 这个是系统存放程序的目录,比如命令,帮助文件等。这个目录下有很多的文件和目录。当我们安装一个linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc/目录中。/usr目录下包括涉及字体目录/usr/share/fonts,帮助目录/usr/share/man或者/usr/share/doc,普通用户可执行文件目录/usr/bin/或/usr/local/bin或/usr/X11R6/bin ,比如/usr/sbin,/usr/X11R6/sbin,/usr/local/sbin等,还有程序的头文件存放目录/usr/include。 |
/var | 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log这是用来存放系统日志的目录,系统日志路径/var/log/messages。/var/www目录是定义apache服务器站点存放目录;/var/lib用来存放一些库文件,比如mysql的,已经mysql数据库的存放地。 |