文件系统
操作系统中,用来管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
具体来说,这部分系统就是负责为用户建立、读取、修改和转储文件,控制文件的存取,当用户不再使用时撤销文件等。
常见的文件系统介绍:
FAT16MS-DOS6.X及以下版本使用。每个磁盘的分区最大只能达到2G,并且会浪费很多空间。在FAT16里有簇的概念,就相当于是图书馆里一格一格的书架,每个要存到磁盘的文件都必须配置足够数量的簇,才能存放到磁盘中,每个文件,无论大小,都至少要使用一个簇在保存。
FAT16各分区与簇大小的关系如下表:
分区大小 | FAT16簇大小 |
---|---|
16MB-127MB | 2KB |
128MB-255MB | 4KB |
256MB-511MB | 8KB |
512MB-1023MB | 16KB |
1024MB-2047MB | 32KB |
思考:如果一个1KB的文件,被保存到了一个1000M的分区,这个文件实际占用的空间是多少?
- FAT32
Windows95以后的系统都支持。
FAT32具有一个最大的优点:在一个不超过8GB 的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少磁盘的浪费,提高磁盘利用率。
突破了FAT16对每一个分区的容量只有2GB的限制,可以将一整个大硬盘定义成一个分区而不必分为几个分区使用,方便了对磁盘的管理。但是,FAT32里,无法存放大于4GB的单个文件,而且容易产生磁盘碎片,性能不佳。
另外,FAT不支持长文件名,只能支持8个字符,而且后缀名最多只支持3个字符。
- NTFS
WindowsNT系列设计,用来取代FAT系统。每个簇的空间更小,磁盘的利用率更高,并且可以共享资源、文件夹以及对文件设置访问许可权限。
- RAW
RAW文件系统是一种磁盘未经处理或者未格式化产生的文件系统。
一般来说有这几种可能造成正常文件系统变成RAW文件系统:
- 没有格式化
- 格式化中途取消
- 硬盘出现坏道
- 硬盘出现不可预知的错误
- EXT
EXT是扩展文件系统,目前最新的版本是5.0.
- HFS(+)
苹果电脑上的文件系统。
文件系统及作用
不同于Windows系统有盘符的概念(C盘、D盘等),Linux里只有一个盘符,是从 ” / ” 开始的,只有它是没有上级目录的。
如果把整个应用目录系统看成一个树形结构,” / ” 表示相当于这个树形结构的根,我们可以将 ” / ” 称之为根目录。
在根目录里,有以下几个一级文件夹或文件,需要大家有所了解。
目录 | 说明 |
---|---|
/ | 系统的根目录 |
/bin | 包含了一些二进制文件,即可执行文件。我们在命令行里执行的指令,例如 ls,rm,cp,mv等,其实都是执行的这个目录里的二进制文件。 |
/boot | 系统启动相关时所需的文件。(勿动) |
/dev | 设备文件,其中许多都是在启动时或运行时生成的。例如,如果你将新的网络摄像头连接到机器中,会自动弹出一个新的设备条目 |
/etc | 用来存放所有的系统管理所需要的配置文件和子目录。(会经常使用) |
/home | 用户的主目录,每一个用户都有自己的目录,所有的用户都存放在home目录下。 |
/lib(64) | 用来存放系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库。 |
/lost+found | 这个目录一般情况下是空的,当系统非法关机后,这里会存放一些没来得及保存的文件。 |
/media | Linux系统自动识别的一些设备,比如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下。 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光盘挂载在/mnt/上,然后进入到该目录就可以查看光驱里的内容了。mount /dev/cdrom /mnt/umount /mnt/ |
/opt | 给额外安装软件所摆放的目录。比如你安装一个ORACLE数据库就可以把它放到这个目录下 |
/proc | 虚拟目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统信息。/proc/sys/net/ipv4/icmp_echo_ignore_all |
/root | 超级用户目录 |
/run | 是一个临时文件,存储系统启动以来的信息,当系统重启时,这个目录下的文件会被删除。 |
/sbin | 超级用户使用的命令存放目录 |
/srv | 存放一些服务启动之后需要提取的数据 |
/sys | 映射内核设备 |
/tmp | 存放临时文件 |
/usr | 非常重要的目录,用来存放用户安装的应用程序和用户文件。 |
/var | 经常修改的数据,比如程序运行的日志文件 |
- 以 ” . ” 开头的文件是隐藏文件。
- ” ./ ” 表示的是当前目录;“ ../ ” 表示的上级目录
- “ ~ ” 表示的当前用户的家目录