• 第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 分区设备文件名或挂载点  //卸载

  • 相关阅读:
    如何阅读一个Web项目 【转载】
    线程的状态与基本操作
    java多线程通信方式之一:wait/notify
    synchronized的简单理解
    每月IT摘录201807
    springmvc 请求无法到达controller,出现404
    android开发 java与c# 兼容AES加密
    android 开发不能创建目录
    mysql存储过程出现OUT or INOUT argument 10 for routine
    android退出登陆后,清空之前所有的activity,进入登陆主界面
  • 原文地址:https://www.cnblogs.com/5iedu/p/6194712.html
Copyright © 2020-2023  润新知