压缩和解压缩工具
压缩比:
目的:时间 换 空间
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