码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统管理----存储管理(三)

时间:2017-12-28 17:17:02      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:网络   运维   

Linux系统中常用的压缩和解压缩工具:
    压缩:以时间换空间的一种操作;
    压缩的实现:标记 + 替换
    压缩比:某个文件在压缩操作之前与压缩操作之后的文件大小的比值;(比值越大,压缩结果越小)
    通常来说,纯文本文件的压缩比比较大;

Linux中常用的压缩工具:
    compress/uncompress  (比较粗糙,压缩比较小)
        会在文件名的后面增加.Z的后缀名称;(xxx.Z)
    gzip/gunzip
        会在文件名的后面增加.gz的后缀名称;(xxx.gz)
    bzip2/bunzip2
        会在文件名的后面增加.bz2的后缀名称;(xxx.bz2)
    xz/unxz     (目前较优秀的压缩工具)
        会在文件名后面增加.xz的后缀名称;(xxx.xz)
    zip/unzip
        会在压缩包名后增加.zip的后缀名称;(xxx.zip)
        注意:保留原文件,并额外制造出一个压缩包文件;


    gzip工具
        gzip, gunzip, zcat -  压缩、解压、在压缩状态下查看文本内容
    常用选项:
        -d:解压缩,相当于gunzip;
        -#:指定压缩时使用的压缩比,有效范围:1-9;--fast = -1  ,--best  =  -9  ;默认为 -6;
        -c:将压缩结果输出到标准输出,但不对原文件进行压缩处理;

    bzip2工具
        bzip2, bunzip2 - 一种块排序文件压缩软件
           bzcat - 将文件解压缩至标准输出
           bzip2recover - 恢复损坏的 bzip2 文件
    常用选项:
        -k:不删除原文件
        -d:解压缩
        -c:将压缩结果输出到标准输出,但不对原文件进行压缩处理;
        -#:指定压缩时使用的压缩比,有效范围:1-9;--fast = -1  ,--best  =  -9  ;默认为 -9;

    xz工具     --较优秀的压缩工具    (压缩比较高会过度消耗CPU)   
        xz, unxz, xzcat,压缩、解压、在压缩状态下查看文本内容
    常用选项:
        -d:解压缩
        -k:不删除原文件
        -#:指定压缩时使用的压缩比,有效范围:0-9,默认为-6;
        -c:将压缩结果输出到标准输出,但不对原文件进行压缩处理;

    zip工具
        zip - package and compress (archive) files
    格式:
        zip  [options]   [zip‐file [file ...]]  
    常用选项:
        -P:压缩并设置密码

        unzip  -l :查看压缩包中的文件列表;


    tar命令:归档

    选项:
        主选项:
            -c:创建档案文件
            -r:向一个已经存在的档案文件的末尾添加新的文件;
            -t:列表显示一个档案的内容;
            -u:仅向档案文件的末尾追加内容比档案文件中的内容更新的文件;
            -x:从档案中获取文件,释放文件;
        辅助选项:
            -f:使用档案文件时用于指明档案文件名称的选项;
            -C:在释放档案中的文件时,不是释放至当前目录,而是指定一个额外的路径存放被释放出的文件;
            -j:主要用于创建档案文件时,选择使用bzip2工具压缩档案文件;
            -J:主要用于创建档案文件时,选择使用xz工具压缩档案文件;
            -z:主要用于创建档案文件时,选择使用gzip工具压缩档案文件;
            -Z:主要用于创建档案文件时,选择使用compress工具压缩档案文件;
            -k:在释放档案中的文件时,如果目标位置有与档案中同名的文件,则此类文件不释放;保证文件系用中的文件不会被档案中的同名文件覆盖;
            -v:显示详细过程;
            --exclude=PATTERN:在释放档案中的文件时被PATTERN匹配到的文件将不被释放;

            (在使用tar命令时,其后面的主选项可不是用 - )

    cpio命令-----
        copy files to and from archives



    写一个脚本:提示用户输入一些文件的路径,并让用户选择压缩方式,根据用户需求对选定的文件进行归档压缩;如果用户没选择压缩方式则仅归档不压缩;




两种特殊文件:
    1.设备文件 (mknod命令可创建设备文件)
        其元数据中原本用来保存数据库块指针的位置,存放的是设备号信息;
    2.符号连接文件
        其元数据中原本用来保存数据块指针的位置,存放的是另一个文件的访问路径;

链接文件:
    链接:将文件的元数据部分和数据部分关联起来的过程;
          访问一个文件的路径
        硬链接:在inode中的数据块指针指向的数据块的链接,称为硬链接;可也以解释为同一个数据块内容的不同数据块指针;
                一个文件的数据内容可以被多个元数据所向,因此可以有多个硬链接;表现为这个文件的数据可以使用不同的路径进行访问;

        硬链接特点:
            1.不能跨文件系统建立硬链接;
            2.不能对目录建立硬链接;
            3.每次对目标文件建立硬链接,其链接计数会自动增加inode引用计数;
        
        符号链接(软链接):
            独立的文件
            用于存储被链接文件的访问路径信息的文件;
        符号链接特点:
            1.可以跨文件系统建立符号链接
            2.目录也可以创建符号链接
            3.通过符号链接查找到被链接文件的数据内容,过程变得更繁琐;因为需要查找两组路径信息;


    ln命令
    在文件之间建立连接
    格式:
    ln [opition] ...[-T] target link-name
    常用选项:
    -s:创建符号链接,如果不加此选项即创建硬链接;
    -v:显示链接建立过程

应用程序发布的版本管理:
    将不同版本的应用程序分别存放于不同的目录中,通过符号链接链接至某个版本的应用程序目录;如果新版应用程序出现问题,只需将符号链接文件链接至以前的某个稳定版本即可实现应用程序回滚;


    vim末行模式中的替换和查找:
        /或?进行模式查找;
        末行命令中的s命令,是进行替换的命令;s是先查找再根据模式进行替换;
        :[address]s/PATTERN/STRING/CONTROL
        [address] : 地址定界符
            1.如果省略则表示光标所在行;
            2.# 该数字所代表的行号
            3.$ 表示当前文档的最后一行;$-1,$-2...倒数第二、三行;
            4.m,n 从第几行到第几行;
            5.m,+n  从第m行开始后n行;
            6./PATTERN/ 被模式匹配到的行
            7./PATTERN1/,/PATTERN2/ 从被模式1匹配到的行开始到被模式2匹配到的行结束;
            8.% 所有行;
        PATTERN:要进行替换的内容必须被PATTERN匹配;
        STRING: 纯字符串,不识别正则表达式的元字符;(替换成什么)
        CONTROL:
            g:当前行内所有匹配的字符全部替换;
            c:手动控制替换操作;


    sed命令
        sed:stream editor,流编辑器
        行编辑操作工具;
        sed在实施文本文件处理时,是以行为单位一个或多个文件进行编辑处理;每次sed会处理给定的文件中的一行内容;

        sed在处理文本文件时,将正在处理的当前行存储到临时的内存缓存区中,称为 模式空间 ;所谓的模式空间是sed命令的主要工作车间;对于缓存的行,使用给定的PATTERN去匹配,如果匹配成功,则使用相应的command进行编辑处理,如果匹配不成功则直接发往标准输出;继续处理下一行直到文档结束;

        默认情况下,sed所处理的文件的内容都是在内存中完成的,并不会影响磁盘上存放的文件的内容;

        sed默认有循环遍历的含义;可以使用sed简化文件的循环遍历操作;

        ---stream editor for filtering and transforming text
        格式:
            sed [OPTION]... 'script‘[inputfile][input-file]...
        常用选项:
            -n:对于不能被PATTERN匹配的行不发送到标准输出;
             -e script, --expression=script:多条件编辑;
             -f script-file, --file=script-file:从指定的文件中读取脚本内容在编辑;
                 注意:script-file最好使用绝对路径指定;
             -i[SUFFIX], --in-place[=SUFFIX]:直接修改原文件内容;
             -r:可以使sed支持扩展正则表达式;

        script:AddressCommand (地址定界+命令)
            Address:地址定界
            1.空地址:表示指定文件的所有行;
            2.单地址:sed对能够匹配该地址的唯一一行进行处理;
                #:表示指定行号
                /PATTERN/:可以被模式匹配到的所有行
                $:表示指定文件的最后一行;不支持$-1
            3.地址范围:
                m,n:m行到n行;(包括m,n行)
                m~n:从m行开始,以n为步长,所经过的所有行;(eg:1~2表示第1,3,5,7...行)
                m,+n:从第m行开始后n行;(包括m行)
                m,~n:从m行开始,向后查找m*n行;(包括m行)
            4./PATTERN1/,/PATTERN2/:
                从被PATTERN1第一次匹配的行开始,到被PATTERN2第一次匹配的行结束;后继续匹配是否有被PATTERN1匹配PATTERN2结束的行;

            Command:命令
            1.=:显示被PATTERN所匹配的行的行号;
            2.a \test :在被模式匹配的行之后追加test内容;支持“\n”换行,从而实现追加多行信息;
            3.i \test :在被模式匹配的行之前插入test内容;支持“\n”换行,从而实现追加多行信息;
            4.c \test :将被模式匹配到的内容修改为test内容,支持“\n”换行,从而实现修改原内容为多行信息;
            5.d :在模式空间中删除被匹配到的行;(不显示被匹配到的行)
                注意:一般在使用d命令时,不建议使用-n选项;否则将没有结果;
            6.p: 将模式空间中被模式匹配的行输出到标准输出;
                注意:一般在使用p命令是建议使用-n选项;
            7.w filename:filename为一个路径;w命令将模式空间中被模式匹配的行存储到指定的文件当中;(相当于另存为)
                注意:一般在使用w命令是建议使用-n选项;
            8.r filename:filename为一个路径;r命令可以将指定的文件内容添加至被PATTERN匹配的行后面;

            !Command:在模式空间中被PATTERN匹配的行不执行指定的命令;相反,没有被PATTERN匹配的行会执行Command;

            s///:查找并替换,分隔符可以更换任意符号,但必须保持一致;
                s/regexp/replacement/[control]
                regexp:正则表达式,也就是PATTERN,计划查找并替换的内容就是能够被regexp匹配的内容;
                replacement:要替换的结果,纯字符串;支持后向引用( s/\(string\)/$/ )| ( s/\(string\)/\1/ )

            高级编辑命令:
                h:将模式空间中的内容存储到保持空间中,并覆盖保持空间中原有内容;
                H:将模式空间中的内容存储到保持空间中,并追加至保持空间中原有内容之后;
                g:从保持空间中取出数据存储到模式空间中,并覆盖模式空间中原有内容;
                G:从保持空间中取出数据存储到模式空间中,并追加至模式空间中原有内容之后;
                x:交换保持空间与模式空间中的内容;
                n:读取被PATTERN匹配的行的下一行,并覆盖到模式空间;
                N:读取被PATTERN匹配的行的下一行,并追加到模式空间;
                D:删除模式空间中的所有行;

Linux系统管理----存储管理(三)

标签:网络   运维   

原文地址:http://blog.51cto.com/holmes975/2055543

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!