10 压缩和解压缩工具和bash脚本编程

压缩和解压缩工具

压缩比:

  目的:时间 换 空间

    CPU的时间 --> 磁盘空间

 

  compress/uncompress,Z

  gzip/gunzip,.gz

  bzip2/bunzip2,bz2

  xz/unxz,xz

  lzma, unlzma, lzma

  zip/unzip

  tar,cplo

 

 1、gzip/gunzip

  gzip, gunzip, zcat - compress or expand files

  zcat:查看被压缩的文件中的内容(适用于查看小文件)

  gzip [OPTION]... FILE...

    -d:解压缩,相当于gunzip

    -#:指定压缩比(等级),默认是6,数字越大压缩比越大,但是压缩时间慢

    -c:将压缩结果输出至标准输出;

      gzip -c FILE > /PATH/TO/SOMEFILE.gz

 

  2、bzip2/bunzip2/bzcat

  bzip2  [OPTION]... FILE...

  -d:解压缩

  -#:指定压缩比;默认是6;数字越大压缩比越大(1-9)

  -k:保留原文件

 

  3、xz/unxz/xzcat

    lzma, unlzma, lzcat

    xz [OPTION]... FILE...

    -d:解压缩

    -#:指定压缩比;默认是6,数字越大压缩比越大(1-9)

    -k:保留原文件

 

  归档操作:tar,cplo

  tar命令:

    tar [OPTION...] [FILE]...

    (1)创建归档

      -c  -f /PATH/TO/SOMEFILE.tar  FILE...

    (2)展开归档

      -xf /PATH/FROM/SOMEFILE.tar

      -xf /PATH/FROM/SOMEFILE.tar -C /PATH/TO/SOMEDIR ,将归档文件展开到指定目录下

    (3)查看归档文件中的文件列表

      -tf /PATH/TO/SOMEFEILE.tar

    归档完成后通常需要压缩,结合此前的压缩工具,就能实现压缩多个文件了;

    

    (4)归档并压缩

      -z:gzip2

        -zcf /PATH/TO/SOMEFILE.tar.gz  FILE...

        -zxf  /PATH/TO//SOMEFILE.tar.gz:解压缩并展开归档

      -j:bzip2

        -jcf

        -jxf

      -J:xz

        -Jcf

        -Jxf

 

      加压缩可以省略 -J,-j,-z

  zip:

    zip/unzip

      后缀名:.zip

 

  练习:下载redis-3.0.2.tar.gz,展开至/tmp目录,而后重新归档压缩为xz格式

 

 

bash脚本编程之用户交互

  脚本参数

  用户交互:通过键盘输入数据,从而完成变量赋值操作;

    read [OPTION]... [NAME]...

      -p 'PROMRT'

      -t TIMEOUT

  bash -n /PATH/TO/SOME_SCRIPT

    检测脚本中的语言错误

  bash -x /PATH/TO/SOME_SCRIPT

    调试执行

  示例:

    #!/bin/bash

    # Version:0.0.1

    # Author::xing

    # Descrption:read testing

    read -p “Enter a disk speclal file:” diskfile

    [ -z "$diskfile" ]  &&  echo “Fool”  &&  exit 1

    if fdisk -l | grep "^Disk  $diskfile" &> /dev/null;then

      fdisk -l $diskfile

    else

      echo "Wrong disk speclal file"

      exit 2

    fi

 

#!/bin/bash
2 #version:
3 # other:
4 #
5 read -p "Enter a disk speclal file:" diskfile
6 [ -z "diskfile" ] && echo "Fool" && exit 1
7
8 if fdisk -l | grep "^磁盘 $diskfile" &> /dev/null;then
9   fdisk -l $diskfile
10 elif fdisk -l | grep "^Disk $diskfile" &> /dev/null;then
11    fdisk -l $diskfile
12 else
13    echo "Wrong disk sperclal file"
14    exit 2

 

 

 

#!/bin/bash
2 #version:
3 # other:
4 #
5 read -p "Enter a disk speclal file:" diskfile
6 [ -z "diskfile" ] && echo "Fool" && exit 1
7
8 if fdisk -l | grep "\(^磁盘\|^Disk\) $diskfile" &> /dev/null;then
9   fdisk -l $diskfile
10 else
11    echo "Wrong disk sperclal file"
12 exit 2
13 fi

 

 

添加用户:

#!/bin/bash
2 #version:0.0.1
3 #author:xing
4 #
5 read -p "Enter a username: " name
6 [ -z "$name" ] && echo "a username is needed" && exit 2
7 if id $name &> /dev/null;then
8 echo "用户已存在" && exit 2
9 fi
10 read -p "Enter password for $name,[password] " password
11 [ -z "$password" ] && password=password
12 if id $name &> /dev/null;then
13 echo "$name exists"
14 else

posted @ 2019-02-17 21:07  self-discipline-xxc  阅读(167)  评论(0编辑  收藏  举报