linux xz 解压initrd.img,2016-8-28 linux基础学习——压缩解压缩及归档 while脚本

文件管理命令----压缩解压缩及归档基本工具

压缩、解压缩命令

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

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

早期

压缩:

compress(压缩比很小): FILENAME.Z ―― 压缩后的文件名

解压:

uncompress

gzip、bzip2、xz只能压缩文件,并且默认压缩完成后删除源文件,zip可以压缩目录

gzip: .gz

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

-d: 解压缩

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

gunzip: (解压缩)

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

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

bzip2: .bz2

bzip2比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

xzdec:解压

-k 保留源文件

-c 输出到屏幕上

xzcat :不解压的情况,查看文本文件的内容

zip: 既归档又压缩的工具

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

unzip FILENAME.zip 解压

archive: 归档(把多个文件整合成一个文件),归档本身并不意味着压缩

tar: 归档工具, .tar —只归档不压缩

-c: 创建归档文件

-f FILE.tar: 操作的归档文件(f后面必须要有参数)

-x: 展开归档

–xattrs: 归档时,保留文件的扩展属性信息(备份)

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

-zcf: 归档并调用gzip压缩

-zxf: 调用gzip解压缩并展开归档,-z选项可以省略

-jcf: 归档并调用bzip2压缩

-jxf: 调用bzip2解压缩并展开归档,

-Jcf: 归档并调用xz压缩  ―― (redhat6)

tar  -cf  xx.tar  FILE归档并调用xz压缩

xz ${DEST}.tar

-Jxf: 调用xz解压缩并展开归档,

cpio: 归档工具

file /boot/initr… .img ―― gzip

cp /boot/initr… .img /root

mv initr… .img initr…img.gz ―― 重命名

ls

gzip -d initr…img.gz ―― 解压文件

ls -lh

file initrd…img ―― cpio

d1399940b8f7652b32bf3f8f3febbac5.png    

练习:编写一个脚本

1.    从键盘获得两个两个值,并计算两值的和

#!/bin/bash

echo "Input two intergers:"

read A B

echo "$A + $B = $[$A+$B]"

76fd7d571b432a20a8b757c5b4b9a06e.png

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

#!/bin/bash

#

read -p "Input three files: " FILE1 FILE2 FILE3

read -p "Destnation : " DEST

read -p "Compress{gzip|bzip2|xz}: " COMP

case $COMP in

gzip)

tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3

;;

bzip2)

tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3

;;

xz)

tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3

xz ${DEST}.tar

;;

*)

echo "Unknown"

exit 8

;;

esac

c7472c144c6f59f8d430c995a656874c.png

8935588e171db22cb5a88223caffafa3.png

2c360b228d3a21ac7deaefebd900b2d6.png

脚本编程:

顺序结构

选择结构

if

case

循环结构

for

while

until

while循环:适用于循环次数未知的场景,要有退出条件

语法:

while CONDITION; do

statement

...

done

1.计算100以内所有正整数的和

#!/bin/bash

#

declare -i I=1

declare -i T=0

while [ $I -le 100 ];do

let T+=$I

let I++

done

echo $T

2.从键盘获取字符串,小写的替换成大写的输出,直到quit退出

#!/bin/bash

#

read -p "Input something: " STRING

while [ $STRING != 'quit' ]; do

echo $STRING | tr 'a-z' 'A-Z'

read -p "Input something:" STRING

done

 f453d5b435b0bd19ae2e7ac71f9b85ea.png   

3.每隔5s就检查hadoop是否登录,

如果登录,显示其登录并退出;否则,显示当前时间,并说明hadoop尚未登录

#!/bin/bash

#

who | grep "hadoop" &> /dev/null

RETVAL=$?

while [ $RETVAL -ne 0 ]; do

echo "`date`, hadoop is not login."

sleep 5

who | grep "hadoop" &> /dev/null

RETVAL=$?

done

echo "hadoop is logged in."

8e9300eaaf86582a2f64ad0efd8b33ec.png

4.写一个脚本:

1) 显示一个菜单给用户:

d|D) show disk usages.

m|M) show memory usages.

s|S) show swap usages.

*) quit.

2) 当用户给定选项后显示相应的内容;

b04d86d2ac1ce91c37083094e15ed538.png

fb40d69d4bfaf3f5b8b1097a507cda71.png

扩展:

当用户选择完成,显示相应信息后,不退出;

而让用户再一次选择,再次显示相应内容;除了用户使用quit;

#!/bin/bash

#

cat << EOF

d|D) show disk usages.

m|M) show memory usages.

s|S) show swap usages.

*) quit.

EOF

read -p "You choice: " CHOICE

while [ $CHOICE != 'quit' ]; do

case $CHOICE in

d|D)

echo "Disk usage:"

df -h ;;

m|M)

echo "Memory usage:"

free -m | grep "Mem" ;;

s|S)

echo "Swap usage:"

free -m | grep "Swap" ;;

*)

echo "Unknown."

;;

esac

read -p "You choice,Again: " CHOICE

done

31eb8c4ab920891d4f7d0670af99c432.png

10866358080298d3d3263516887ceabe.png

echo命令

eg1:echo -e "\033[35mHello world\033[0m."

eg2:echo -e "\033[1;36;45mHello World.\033[0m"

-e开启逃逸符    \033表示ctrl

[0m结束符

一位数字,表示字体格式

eg:1,加粗显示

eg:5,字体闪烁

eg:7,前景色与背景色调换

两位整数表示,同时控制前后景,用分号分割

3#:字体前景色

4#:字体背景色

b17520a0dc2e34b58a1ba083d07941df.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值