一、磁盘管理

       1、 机械式硬盘:

            U盘、光盘、软盘、硬盘、磁带

       2、 格式化:(Partition) 创建文件系统

        MBR:主引导记录 (512byte)

             Master Boot Record

             Main Boot Record

                 446bye:BootLoader, 是一个程序。引导加载器

                  64bytes:

                     16bytes:标识一个分区

                   2bytes:Magic Number

                        标记MBR是否有效。

    3、硬连接和符号连接

        硬连接:是指两个存储块指向一个引导号

        符号连接:(又叫软连接)是指一个文件指向另外一个文件

        创建连接  :ln [-s -v]  SRC (源文件)  DEST(目标文件)

           ln SRC   DEST   硬连接

            ln -s SRC DEST  软连接

        硬链接特点:    

                1、只能对文件创建,不能应用于目录;

                2、不能跨文件系统;

                3、创建硬链接会增加文件被链接的次数;

        符号链接:

                1、可应用于目录;

                2、可以跨文件系统;

                3、不会增加被链接文件的链接次数;

                4、其大小为指定的路径所包含的字符个数;

du:

    -s  查看文件的大小

    -sh  查看目录的总容量

df : 显示整个磁盘的分区情况

            image.png    

        image.png

        df -p -i

二、设备文件

        b:块设备   按块为单位,随机访问的设备  (硬盘)

        c:字符设备   按字符为单位,线性设备  (键盘)

        /dev 

            主设备号:(major number)   标识设备类型

            次设备号:(minor number)   标识同一种类型中不同设备

        mknod

        mknod [OPTION]... NAME TYPE [MAJOR MINOR]

            -m MODE

            硬盘设备的设备文件名:

            IDE,ATA: hd

            SATA:sd

            SCSI:sd

            USB:sd        

                    a,b,c,...  来区别同一类型下的不同设备

            IDE:

                    第一个IDE口:主、从

                            /dev/hda  , /dev/hdb

                    第二个IDE口:主、从

                            /dev/hdc , /dev/hdd

          hda:

                hda1:第一个分区

                hda2:第二个分区

                hda3:第三个分区

                hda4:

                hda5:第一个逻辑分区

查看当前系统识别了几块硬盘:  fdisk -l  [/dev/to/some_device_file]

        image.png

        

三、Linux支持的文件系统

     1、管理磁盘分区:

        fdisk /dev/sda

            p:显示当前硬件的分区,包括没有保存的改动

            n:创建新分区

                    e:扩展分区

                    p:主分区

            d:删除一个分区

            w:保存退出

            q:不保存退出

            t:修改分区类型

                    L:

            l:显示所有支持的所有类型

    2、文件系统管理

        格式化分区:重新创建文件系统会损坏原有文件

        mkfs:make file systemc

               -t FSTYPE 

            文件系统类型:

                    ext2

                    ext3

        cat /proc/filesystems:查看当前内核所支持文件系统类型:

        image.png

    3、专门管理ext系列文件:

        mke2fs:    

                -j:创建ext3 类型文件系统

                -b BLOCK_SIZE : 指定块大小,默认为 4096  可以取值为 1024  或2048或4096

                -L  LABEL:指定分区卷标

                -m # :指定预留给超级用户的块数百分比

                - i   #:用于指定为多少字节的空间创建一个 inode  默认为 8192  ,这里给出的数值应该为块大小的2^n 倍。     

                -N :指定inode个数;

                -F :强制创建文件系统

                -E:用户指定额外文件系统属性;         

        4、blkid:查询或查看磁盘设备的相关属性

                    UUID

                    TYPE

                    LABEL  :查看卷标

                image.png

                e2label :用于查看或定义卷标

                    e2label  设备文件 卷标 :设定卷标

        5、tune2fs:调整文件系统的相关属性

                -j:不损害原有数据,将ext2 升级为ext3;

                -L  LABEL:设定或修改卷标

                -m # :调整预留百分比

                -r # :指定预留多少块

                -o :设定默认挂载选项;

                -c # :指定挂载次数达到#次之后进行自检, 0或-1 表示关闭此功能

              -i  # :每挂载使用多少天后进行自检,0或-1  表示关闭此功能

                -l: 显示超级块中的信息;

dumpe2fs:显示文件属性信息

        -h :只显示超级块的信息

fsck :检查并修复Linux文件系统

        -t FSTYPE :指定文件系统类型

        -a :自动修复

e2fsck :专用于修复ext2/ext3 文件系统

        -f :强制检查;

        -p:自动修复

        

        

四、挂载与卸载

        挂载:将新的文件系统关联至当前根文件系统

        卸载:将新的文件系统从当前根文件系统中移除。

        mount:挂载    

            mount 设备 挂载点

            设备:

                设备文件: /dev/sda5

                卷标:LABEL=“”

                UUID: UUID=“”

            挂载点:目录

                1、此目录没有被其他进程使用

                2、目录得事先存在

                3、目录中的原有的文件将会被暂时隐藏。

mount:显示当前系统已经挂载的设备及挂载点

mount [options] [-o options] DEVICE MOUNT_POINT

        -a:表示挂载/etc/fstab文件中定义的所有文件系统

        -n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件。

        -t FSTYPE:指定正在挂载设备上的文件系统的类型;不适用此选项事, mount会调用blkid命令获取对应文件系统的类型;

        -r:只读挂载,挂载光盘时,常用此选项。

        -w:读写挂载,一般默认是读写挂载

        -o:指定额外的挂载选项,也既指定文件系统启用的属性;

            remount:重新挂载当前文件系统

            ro:挂载为只读

            rw:读写挂载      

挂载完成后,要通过挂载点访问对应文件系统上的文件。

    umount:卸载某文件系统

        umount 设备

        umount  挂载点

        卸载注意事项:

            挂载的设备没有进程使用;

    练习题:

     1、调整其预留百分比为3%

            tune2fs -m 3 -L DATA /dev/sda7

    2、以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验证其效果

            stat /backup/inittab

            cat /backup/inittab

            stat

            

            mount -o remount,noatime /backup

            cat

            stat

    3、对此文件系统强行做一次检测

            e2fsck -f /dev/sda7

    4、删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后在此复制/etc目录中的所有文件至此挂载点,体验其性能变化:

            rm -rf /dev/sda7

            mount -o remount,sync /backup

            cp -r /etc/* /backup

五、swap分区

        free -m

    fdisk命令中,调整分区类型为82:

    创建交换分区:

     mkswap /dev/sda8

          -L  LABEL

     swapon /dev/sda8  :启用这个分区的swap

     swapoff /dev/sda8 :停用这个分区的swap

回环设备:

    loopback:使用软件来模拟实现硬件

  

dd命令:转化并复制一个文件

    if=输入数据的来源

    of=数据存储目标

    bs-1

    count=2

    seek=# :创建数据文件时,跳过的空间大小;

dd if=/dev/sad of=/mnt/usb/mbr.backup bs=512 count=1

dd if =/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1

cat /dev/cdrom > /root/rhe15.iso  制作镜像

mount命令:可以挂载iso镜像:

mount  DEVICE MOUNT_POINT

        -o loop: 挂载本地回环设备,因此可以挂载镜像

mount /dev/sda5 /mnt/test

文件系统的配置文件: /etc/fstab

image.png

    os在初始时,会自动挂载此文件中定义的每个文件系统

要挂载的设备    挂载点   文件系统类型   挂载选项   转储频率(每多少天做一次完全备份)   文件系统检测次序(只有根可以为1,0表示不检查)

/dev/sda5       /mnt/test     ext3          defaults    0     0

mount -a :挂载/etc/fstab 文件中定义的所有文件系统

fuser:验证进程正在使用的文件或套接字文件

        -v:查看某文件上正在运行的进程

        -k:

        -m

        

        fuser -km MOUNT_POINT :终止正在访问此挂载点的所有进程。

        

    练习:

    1、创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为 1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用:

    2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为 512MB,卷标为SWAP—FILE ,且开机自动启用此交换设备:

        mkdir /var/swaptemp

        dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512

        mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile

        /etc/fstab

        /var/swaptemp/swapfile     swap   swap    defaults   0   0

    3、上述第一问,如何让其自动挂载的同时启用ACL功能:

        /etc/fstab

        LABEL=‘MYDATA’     /data    ext3    defaults,acl   0   0

六、压缩、解压缩命令

    压缩格式:gz ,bz2 ,xz ,zip ,Z

    压缩算法:算法不同,压缩比也会不同

    

    gzip: .gz

            gzip  /PATH/TO/SOMEFILE : 压缩完成后会删除原文件

                -d:表示解压缩,相当于 gunnzip 

                -# :1-9 ,指定压缩比,默认是6

    gunzip:

            gunzip  /PATH/TO/SOMEFILE.gz :解压完成后会删除原文件

    zcat /PATH/TO/SOMEFILE.gz  : 不解压的情况下,查看文件的内容

    bzip2 : .bz2

            比gzip有着更大压缩比的压缩工具,使用格式近似

                    bzip2 /PATH/TO/SOMEFILE

                        -d:解压缩

                        -#:1-9,默认是6

                        -k:压缩时保留原文件

                    bunzip2 /PATH/TO/SOMEFILE.bz2

            bzcat /PATH/TO/SOMEFILE.bz2 :不解压的情况下,查看文件的内容

    

xz:  .xz

        xz  /PATH/TO/SOMEFILE

                -d:表示解压缩

                -# :1-9,默认是6

                -k :压缩时保留原文件

            unxz:表示解压缩

        xzcat:表示不解压查看文件内容

        

zip:既归档又压缩的工具

        zip FILENAME.zip  FILE1  FILE2 ... : 压缩后不删除源文件

        unzip FILENAME.zip

archive: 归档,归档本身并不意味着压缩

    

tar:归档工具, .tar

        -c:创建归档文件

        -f FILE.tar  :操作的归档文件

        -x :展开归档,还原归档

        --xattrs :归档时,保留文件的扩展性信息

        -t :不展开归档,直接查看归档了哪些文件

        -zcf:归档并调用gzip压缩

        -zxf:调用gzip解压缩并展开归档

练习:写一个脚本

    从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件:

        read:

            -p “PROMPT”:给出提示

        image.png   

七、while语句

    脚本编程:

            顺序结构

            选择结构

                if

                case

            循环结构

                for

                while    

                until

    while循环: 适用于循环次数未知的场景

        语法:

            while CONDITION;do

                statement

                ...

             done

  练习: 显示一个菜单给用户:

d|D) show disk usages。

m|M) show memory usages。

s|S) show swap usages。

*)quit

    当用户给定选项后显示相应的内容:

    image.png

扩展:当用户选择完成,显示相应信息后,不推出,而让用户再一次选择,再次显示相应内容;除了用户使用quit:

image.png