首页 > 代码库 > 第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)_文件系统和常用命令