zoukankan      html  css  js  c++  java
  • 运维磁盘文件管理语法

    一、磁盘管理

           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

            

  • 相关阅读:
    解决hung_task_timeout_secs问题【方法待校验】
    C++面向对象程序设计 学习心得
    试水训练1
    并查集
    ACM儿童节热身训练
    图论部分学习小结
    ACM儿童节热身训练
    堆及其应用学习小结
    ACM本周小结
    POJ-3273-Monthly Expense
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/10779648.html
Copyright © 2011-2022 走看看