linux 文件系统解析及相关命令

来源:互联网 发布:数据挖掘从应用角度 编辑:程序博客网 时间:2024/04/30 19:57

转载于:
http://www.cnblogs.com/0201zcr/p/4773995.html

简介

    文件系统就分区或磁盘上的所有文件的逻辑集合。    文件系统不仅包含着**文件中的数据**而且还有**文件系统的结构**,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。    不同Linux发行版本之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录结构基本上都是一样的。

文件系统有多种类型,如:

  • ext2:早起Linux中常用的文件系统
  • ext3:ext2的升级版,带日志功能
  • RAMFS:内存文件系统,速度很快
  • iso9660:光盘或光盘镜像
  • NFS:网络文件系统,有SUN发明,主要用于远程文件共享
  • MS-DOS:MA-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 命令可以用来查看磁盘空间的使用情况(以千字节计),例如:

$df -kFilesystem      1K-blocks      Used   Available Use% Mounted on/dev/vzfs        10485760   7836644     2649116  75% //devices                0         0           0   0% /devices$

每一列的含义如下:
这里写图片描述
你可以结合 -h (human readable)选项将输出信息格式化,让人更易阅读。

du 命令
du(disk usage)命令可以用来查看特定目录的空间使用情况。

du命令会显示每个目录所占用数据块。根据系统的不同,一个数据块可能是512字节或者1024字节。举例如下:

$du /etc10     /etc/cron.d126    /etc/default6      /etc/dfs...$

结合 -h 选项可以让信息显示的更加清晰:

$du -h /etc5k    /etc/cron.d63k   /etc/default3k    /etc/dfs...$

挂载文件系统

    挂载是指讲一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。若要访问设备中的文件,必须将文件挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。    这样就为用户提供了统一的接口,屏蔽了硬件设备的细节。Linux将所有的硬件设备看做文件,对硬件设备的操作等同于对文件的操作。    注意:挂载目录可以不为空,但是挂载后这个目录下以前的内容将不可用。    需要知道的是,光盘、软盘、其他操作系统所使用的文件系统的格式与Linux使用的文件系统格式是不一样的,挂载需要确认Linux是否支持所要挂载的文件系统格式。

查看当前系统所挂载的硬件设备可以使用mount命令:

$ mount/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)proc on /proc type proc (rw,nodiratime)devpts on /dev/pts type devpts (rw)$

一般约定,/mnt为临时挂载目录,例如挂载CD-ROM、远程网络设备、软盘等。
也可以通过mount命令来挂载文件系统,语法为:

mount -t file_system_type device_to_mount directory_to_mount_to

例如:

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

将 CD-ROM 挂载到 /mnt/cdrom 目录。
注意:file_system_type用来指定文件系统类型,通常可以不指定,Linux会自动正确选择文件系统类型。
挂载文件系统后,就可以通过cd、cat等命令来操作对应文件。

可以通过unmount命令来卸载文件系统。例如,卸载cdrom

$ umount /dev/cdrom

不过,大部分现代的Linux系统都有自动挂载卸载功能,unmount命令较少用到。

用户和群组配额

用户和群组配额可以让管理员为每个用户或群组分配固定的磁盘空间。
管理员有两种方式来分配磁盘空间:

  • 软限制:如果用户超过指定的空间,会有一个宽限期,等待用户释放空间。
  • 硬限制:没有宽限期,超出指定空间立即禁止操作。

下面的命令可以用来管理配额:
这里写图片描述

0 0