文件系统就是分区或磁盘上的所有文件的逻辑集合。
文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
不同Linux发行版本之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录结构基本上都是一样的。
文件系统有多种类型,如:
- ext2 : 早期linux中常用的文件系统;
- ext3 : ext2的升级版,带日志功能;
- RAMFS : 内存文件系统,速度很快;
- iso9660:光盘或光盘镜像;
- NFS : 网络文件系统,由SUN发明,主要用于远程文件共享;
- MS-DOS : MS-DOS文件系统;
- FAT : Windows XP 操作系统采用的文件系统;
- NTFS : Windows NT/XP 操作系统采用的文件系统。
分区与目录
文件系统位于磁盘分区中;一个硬盘可以有多个分区,也可以只有一个分区;一个分区只能包含一个文件系统。
Linux文件系统与Windows有较大的差别。Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如 C、D、E、F等。
Linux的文件结构是单个的树状结构,根目录是“/”,其他目录都要位于根目录下。
每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下:
- 任何一个分区都必须对应到某个目录上,才能进行读写操作,称为“挂载”。
- 被挂载的目录可以是根目录,也可以是其他二级、三级目录,任何目录都可以是挂载点。
- 目录是逻辑上的区分。分区是物理上的区分。
- 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。
为什么要分区,如何分区?
- 可以把不同资料,分别放入不同分区中管理,降低风险。
- 大硬盘搜索范围大,效率低。
- /home、/var、/usr/local 经常是单独分区,因为经常会操作,容易产生碎片。
为了便于定位和查找,Linux中的每个目录一般都存放特定类型的文件,下表列出了各种Linux发行版本的常见目录:
常用文件管理命令
df命令
管理磁盘分区时经常会使用 df (disk free) 命令,df -k 命令可以用来查看磁盘空间的使用情况(以千字节计),例如:
每一列的含义如下:
某些目录(例如 /devices)的 kbytes、used、avail 列为0,use列为0%,这些都是特殊(或虚拟)文件系统,即使位于根目录下,也不占用硬盘空间。
du命令
du (disk usage) 命令可以用来查看特定目录的空间使用情况。
du 命令会显示每个目录所占用数据块。根据系统的不同,一个数据块可能是 512 字节或 1024 字节。举例如下:
挂载文件系统
挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。 若要访问设备中的文件,必须将文件挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。
这样就为用户提供了统一的接口,屏蔽了硬件设备的细节。Linux将所有的硬件设备看做文件,对硬件设备的操作等同于对文件的操作。
注意:挂载目录可以不为空,但挂载后这个目录下以前的内容将不可用。
需要知道的是,光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的,挂载需要确认Linux是否支持所要挂载的文件系统格式。
查看当前系统所挂载的硬件设备可以使用 mount 命令:一般约定,/mnt 为临时挂载目录,例如挂载CD-ROM、远程网络设备、软盘等。
也可以通过mount命令来挂载文件系统,语法为:mount -t file_system_type device_to_mount directory_to_mount_to注意:file_system_type用来指定文件系统类型,通常可以不指定,Linux会自动正确选择文件系统类型。
挂载文件系统后,就可以通过 cd、cat 等命令来操作对应文件。
可以通过 umount 命令来卸载文件系统。例如,卸载 cdrom:umount /dev/cdrom不过,大部分现代的Linux系统都有自动挂载卸载功能,unmount 命令较少用到。
用户和群组配额
用户和群组配额可以让管理员为每个用户或群组分配固定的磁盘空间。
管理员有两种方式来分配磁盘空间:
- 软限制:如果用户超过指定的空间,会有一个宽限期,等待用户释放空间。
- 硬限制:没有宽限期,超出指定空间立即禁止操作。
下面的命令可以用来管理配额: