首页 > 代码库 > 第8章 文件系统管理(1)_文件系统和常用命令

第8章 文件系统管理(1)_文件系统和常用命令

1. 文件系统

(1)ext2文件系统

  ext2是ext文件系统的升级版本,RedHat Linux7.2版本以前的系统默认都是ext2文件系统。1993年发布,最大支持16TB的分区和最大2TB的文件(1TB=1024GB=1024*1024KB)

(2)ext3文件系统

  ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。

(3)ext4文件系统

  它是ext3文件的升级版。ext4在性能、伸缩性和可靠性方面进行了大量改进。ext4的变化可以说是翻天覆地的,比如向下兼容ext3、最大支持1EB文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS6.3的默认文件系统。(1EB=1024PB=1024*1024TB)

2. 文件系统常用命令

2.1 df、du、fsck和dump2fs命令

2.1.1 df命令和du命令的区别

(1)文件系统查看命令:df命令

  ①命令格式及说明

命令格式

#df [选项] [挂载点]  //df = disk free

选项说明

-a 显示所有的文件系统,包括特殊文件系统,如/proc、/sysfs

-h 使用习惯单位显示容量,如KB、MB或GB等。

-T 显示文件系统类型

-m 以MB为单位显示容量

-k 以KB为单位显示容量。默认是以KB为单位

  ②应用举例

 技术分享

(2)统计目录或文件大小:du命令

命令格式

#du [选项] [目录或文件名]  //du =disk usage磁盘使用量

选项说明

-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量,而不统计其下子文件。

-h 使用习惯单位显示容量,如KB、MB或GB等。

-s 统计总占用量,而不列出子目录和子文件的占用量

(3)ls、df和du的区别

技术分享 

  ①用ls命令出来的目录大小不包括里面的文件大小。ls命令显示的文件大小是该文件实际内容的字节大小而du命令出来的是该文件所占用的block大小。注意,一个文件占用的磁盘空间和一个文件的大小是两码事情。占用空间取决于文件系统的块(block)的大小。linux一般默认是4k(4096)。因此,一个大小为1个字节的文件,最小也要占用4k,如果创建文件系统的时候制定块大小是16K,那么即便一个文件只有1个字节,占用空间也是16K。

  ②df通过文件系统来快速获取空间大小的信息,当我们删除一个文件时,这个文件并不马上就在文件系统中消失,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉己经删除的文件df记录的是通过文件系统获取到的文件大小他比du强的地方就是能看到己经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更加精确。

  ③du命令是面向文件的,只会计算文件或目录占用的空间。它是通过搜索文件来计算每个文件的大小然后累加du能看到的文件中是一些当前存在的,没有被删除的。其计算结果就是当前他认为存在的所有文件大小的累加和。

2.1.2 文件系统修复命令:fsck

命令格式

# fsck [选项] 分区设备文件名

选项说明

-a 不用显示用户提示,自动修复文件系统

-y 自动修复。和-a作用一致,不过有些文件系统只支持-y。

2.1.3 显示磁盘状态命令:dumpe2fs

(1)dumpe2fs命令:#dumpe2fs 分区设备文件名

(2)应用举例:查看分区的状态

技术分享 

2.2 挂载命令

2.2.1 查询与自动挂载

(1)查询系统中己挂载的设备#mount [-l],其中的-l会显示卷标名称

(2)依据配置文件/etc/fstab的内容,自动挂载:#mount –a

2.2.2 挂载命令格式

(1)挂载mount的格式

命令格式

# mount [-t 文件系统] [-L 卷标名] \

[-o 特殊选项] 设备文件名 挂载点

选项说明

-t 文件系统: 加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统。其中光盘的类型为iso9660

-L 卷标名: 挂载指定卷标的分区,而不是安装设备文件挂载

-o 特殊选项可以指定挂载的额外选项.如remount表示重载挂载。exec设定是否允许在文件系统中执行可执行文件。

(2)-o 特殊选项

参数

说明

atime/noatime

更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认是更新

async/sync

异步/同步,默认为异步

auto/noauto

自动/手动,mount –a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动

defaults

定义默认值,相当于rw、suid、dev、exec、auto、nouser、async这七个选项

exec/noexec

执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是允许的

remount

重载挂载己经挂载的文件系统,一般用于指定修改特殊权限

rw/ro

读写/只读,文件系统挂载时,是否具有读写权限,默认是rw

suid/nosuid

具有/不具有SUID权限,设定文件系统是否有SUID和SGID权限,默认是具有。

user/nouser

允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许的,只有root可以挂载分区

usrquota

写入代表文件系统支挂用户磁盘配额,默认不支持

grpquota

写入代表文件系统支持组磁盘配额,默认不支持。

(3)应用举例

  #mount –o remount,noexec /home  //重载挂载/home分区,并使用noexec权限。

技术分享 

  ①重新挂载/home分区,并使其不具有执行可执行文件的权限

  ②在/home下创建一个可执行文件hello.sh。

  ③由于/home分区不能执行可执行文件,所以./hello.sh失败。(哪怕root对这个hello.sh这个可执行文件具有x权限

  ④重新挂载为可执行分区时,#./hello.sh就会被正常执行。

2.3 挂载光盘与U盘

2.3.1 挂载光盘

(1)建立挂载点:#mk /mnt/cdrom

(2)挂载光盘 #mount –t iso9660 /dev/cdrom /mnt/cdrom/ 或

        #mount /dev/sr0 /mnt/cdrom/

(3)卸载光盘:#umount 设备文件名或挂载点(注意,要事先退出挂载点所在目录!)

2.3.2 挂载U盘

(1)查看U盘设备文件名:#fdisk –l

(2)挂载U盘:#mount –t vfat /dev/sdb1 /mnt/usb(注意,Linux默认不支持NTFS格式,插入U盘时,要把光标放在虚拟机内,否则U盘会被宿主机所识别)。

(3)卸载U盘:#umount设备文件名或挂载点

2.4 支持NTFS文件系统

(1)下载NTFS-3G插件:http://www.tuxera.com/community/ntfs-3g-download/

(2)安装NTFS-3G插件

  ①#tar –zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz  //解压

  ②#cd ntfs-3g_ntfsprogs-2013.1.13  //进入解压目录

  ③#./configure  //编译器准备。没有指定安装目录,安装到默认位置中

  ④#make //编译 (需要先安装gcc)

  ⑤#make install  //编译安装

(3)使用:#mount –t ntfs-3g 分区设备文件名 挂载点   //挂载

  #umount 分区设备文件名或挂载点  //卸载

第8章 文件系统管理(1)_文件系统和常用命令