Linux平台文件压缩打包及文本三剑客sed用法| 学习笔记

简介: 快速学习Linux平台文件压缩打包及文本三剑客sed用法

开发者学堂课程【Linux企业运维实战 - 入门及常用命令Linux平台文件压缩打包及文本三剑客sed用法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/550/detail/7619


Linux平台文件压缩打包及文本三剑客sed用法


内容介绍:

一、压缩、解压缩及归档工具

二、文本处理工具 sed

 

一、压缩、解压缩及归档工具

(一)tar工具

1、tar(Tape ARchive,磁带归档的缩写,但是比较慢)

2、tar[OPTION]..

(1)创建归档

tar -cpvf /PATH/TO/SOMEFILE.tar FILE...

(2)追加文件至归档:注:不支持对压缩文件追加

 tar-r-f/PATH/TO/SOMEFILE.tarFILE...

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

 tar-t -f /PATH/TO/SOMEFILE.tar

(4)展开归档

 tar-x -f/PATH/TO/SOMEFILE.tar

tar-x-f/PATH/TO/SOMEFILE.tar-C/PATH/

(5) 结合压缩工具实现:归档并压缩

3、-T选项指定输入文件-X选项指定包含要排除的文件列表      

tar zcvf mybackup.tgz-T /root/includefilelist -X /root/excludefilelist

4、分割大的tar文件为多份小文件:      

 split -b Size -d tar-file-name prefix-name      

split -b 1M-d mybackup.tgz mybackup-parts      

split -b 1M mybackup.tgz mybackup-parts

5、合并:      

catmybackup-parts*>mybackup.tar.gz

•实例:

1、打包文件

[root@centos7 ~]#tar -cf data.tar /data

可以看到打包过程

[root@centos7 ~]#tar -cvf data.tar /data

并且可以看到原有属性

[root@centos7 ~]#tar -cpvf data.tar /data

[root@centos7 ~]#du -sh /data/

2.4M   /data/

tar只是打包文件,并不压缩文件

2、压缩时应根据文件类型判断是否适合压缩

[root@centos7 ~]#ll data.tar -h

不要尝试对已经压缩过的文件进行压缩,如:

[root@centos7 ~]#mp4 winrar mp3 rmvb

无压缩效果

3、预览data文件列表

[root@centos7 ~]#tar tvf data.tar

解压缩 (默认解压缩在当前目录下)

[root@centos7 ~]#tar x^c data.tar

使解压缩在mnt目录下(两种方法)

在解压缩时直接指定文件名称

[root@centos7 ~]#tar xvf /root/data.tar

[root@centos7 ~]#cd mnt

或使用-c指定目标解压缩目录

[root@centos7 ~]#tar xvf data.tar  -c /mnt 

4、既打包又压缩

[root@centos7 ~]#tar -zcpvf data.tar.gz  /data

[root@centos7 ~]#tar -zcpvf data.tar.xz  /data

[root@centos7 ~]#tar -zcpvf data.tar.bz2  /data

解压缩:

[root@centos7 ~]#tar xvf data.tar.bz2  -c /mnt

5、个别文件不打包

[root@centos7 ~]#cat  list.txt

/etc/

/boot

[root@centos7 ~]#cat exlist.txt

/etc/shadow

[root@centos7 ~]#tar jcvf list.tar.xz -T list.txt  -x enlist.txt

打包压缩虽然节约了磁盘空间,但是要消耗系统资源—性能

预览文件:

[root@centos7 ~]#tar tvf list.tar.xz |grep shadow

6、切割小文件

查看文件有多大

[root@centos7 ~]#ll list.tar.xz -h

95M

切割命令split

[root@centos7 ~]#split  -b 10M -d list.tar.xz  a.tar

[root@centos7 ~]#ll

or

[root@centos7 ~]#split  -b 10M  list.tar.xz  b.tar

7、 合并文件

[root@centos7 ~]#cat a.tar0* > a.tar.xz

[root@centos7 ~]#ll a.tar.xz list.tr.xz

即可与原文件合并

(二)cpio

1、功能:复制文件从或到归栏

2、cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以".cpio”或者".tar”结尾的文件

3、cpio[选项]>文件名或者设备名

4、cpio[选项]文件名或者设备名

5、选项      

-0将文件拷贝打包成文件或者将文件输出到设备上

-i解包,将打包文件解压或将设备上的备份还原到系统

-t预览,查着文件内容或者输出到设备上的文件内容

-v显示打包过程中的文件名称。

-d解包生成目录,在cpio还原时,自动的建立目录

-c一种较新的存储方式

•示例:

1、将etc自录备份:      

find:/etc -print | cpio -ov >etc.cpio

2、内容预览      

cpio-tv < etc.cpio

3、解包文件      

cpio -idv < etc.cpio

[root@centos7 ~]#find /etc/syconfig/  |  cpio -ov > sysconfig.cpio

[root@centos7 ~]#file sysconfig.cpio

预览文件内容

[root@centos7 ~]#cpio  -tv < sysconfig.cpio

解开文件

[root@centos7 ~]#Cpio -idv <^Csysconfig.cpio

[root@centos7 ~]#cd /data

解压到绝对路径

[root@centos7 ~]#cpio -idv < /boot/sysconfig/cpio

解压到当前目录下

[root@centos7 ~]#cpio -idv <  /boot/init ramos-3.10.0-693.e17.x86_64.img

打包时带有绝对路径就解压到绝对路径中,如果只有文件名,没有绝对路径,就解到相对路径

(三)回顾整理命令工具

authconfig

alias Unalaska.Ashcroft

bc |

Cut

Clock

cal 9 1752

cd

Change

Chpasswd

Cp -a -r -v -p

cpio

Chfn finger

Chsh shell

Cho d

Chvt 2

clown

Chirp

Chattr

compress uncompress

dd

Df

Diff

dirname

echo

expr

export

enable

env

file

find

fdisk

free

finger

getent passwd |group|shadow|gshadow

groupadd

groupmod

groups

gpasswd

gedit

getfacl

grpck

hash

history

hostname

hexdump

help

head

info

id

init 0 3 5 6

ifconfig

ll

lsattr

ln -s

ls /dev/sda*

lsblk

split

su -

sosreport

shutdown

strace

sort

tar

tee

tty

type

test

tac

tail

timedatetl centos7

unsec

undatedb

uname -r

uask

useradd

usermod

userdel

uniq

vipw

vigr

wc

w

wall

who who am i

whatis

whereis

which

whoami

xz

xzcat

xrags

zcat

zip

 

二、文本处理工具sed

sed 命令不仅可以查看过滤文件,还能修改文件

在特定文件中(bashrc)加入别名,可以使用 sed 工具放到脚本中批量执行

[root@centos7 ~]#reset.sh

(一)处理文本的工具sed

1、Stream EDitor,行编辑器

2、sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

然后读入下行,执行下一个循环。如果没有使诸如"D”的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。      

3、功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

4、参考:http://www.gnu.org/software/sed/manual/sed.html

 (二)sed工具

1、用法:        

sed[option]...'script' inputfile…

2常用选项:

-n:不输出模式空间内容到屏幕,即不自动打印

-e:多点编辑      

-f:/PATH/SCRIPT_FILE:从指定文件中读取编辑脚本

-r:支持使用扩展正则表达式

-i.bak:备份文件并原处编辑

3、script:

地址命令’

4、地址定界:

 (1)不给地址:对全文进行处理

 (2)单地址:      

 #:指定的行,$:最后一行      

/pattern/:被此处模式所能够匹配到的每一行

支持正则表达式,只有满足pattern定义的行才能处理

若是匹配此模式的行有100行,只有10行符合pattern定义,那就只处理次10行

(3)地址范围:      

 ##           比如10,20

#+#               10,10+10

/pat1//pat2/          

#./pat1/

(4)~:步进      

 1~2奇数行      

2~2偶数行

5、编辑命令:

d:删除模式空间匹配的行,并立即启用下一轮循环

p:打印当前模式空间内容,追加到默认输出之后

a  [\]text:在指定行后面追加文本              

支持使用\n实现多行追加

i  [\]text:在行前面插入文本

c  [\]text:替换行为单行或多行文本

w  /path/somefile:保存模式匹配的行至指定文件

r  /path/somefile:读取指定文件的文本至模式空间中                    

配到的行后

= 为模式空间中的行打印行号

! :  模式空间中匹配行取反处理

示例:

使用sed加上脚本,打印第二行,默认自动打印

[root@centos7 ~]#sed ‘2p’ f1

可以用-n关闭自动打印

简便组合方法:

[root@centos7 ~]#ifconfig ens33 |sed -n ‘2p’

找包含root的行:

单地址打印文件,只显示第二行

[root@centos7 ~]#sed -n ‘2p’ /etc/passwd

最后一行打印

[root@centos7 ~]#sed -n ‘$p’ /etc/passwd

模式打印

[root@centos7 ~]#sed -n ‘//p’ /etc/passwd

默认sed命令使用基本正则表达式,也可以扩展正则表达式:加r选项

显示第二行到第五行:

[root@centos7 ~]#sed ‘2,5p’ /etc/passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@centos7 ~]#cat /etc/passwd less

使用+方式

[root@centos7 ~]#sed -n ‘2,+3p’ /etc/passwd

还支持正则表达式

[root@centos7 ~]#sed -n ‘/^b/,/^f/p’ /etc/passwd

若没有f结尾,则不存在,就会找到最后

[root@centos7 ~]#sed -n ‘/^b/,/^ffff/p’  /etc/passwd

-e多点编辑:操作多次

[root@centos7 ~]#sed -n -e “2p” -e “6p” f1

专门写到一个文件中:

[root@centos7 ~]#sed -n -e “2p” -e “6p” f1^c

[root@centos7 ~]#cat > sedscript.txt

2-2p

[root@centos7 ~]#cat sedscript.txt

2-2p

[root@centos7 ~]#Sed -f  sedscript.txt f1

[root@centos7 ~]#Sed -n -f  sedscript.txt f1

d命令:

[root@centos7 ~]#sed ‘2d’ f1

1

3

4

5

6

7

8

9

10

!表示取反:

[root@centos7 ~]#sed ‘2!d’ f1

2

显示 root 包括 root 的行表示:不包括 root 的行

=命令—加行号:

[root@centos7 ~]#sed -n  ‘/root/=’  /etc/passwd

1

10

相关文章
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
47 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
53 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
102 6
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
68 0
|
7月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
6月前
|
Linux
linux 压缩解压
linux 压缩解压
43 1
|
6月前
|
Linux
14. 【Linux教程】文件压缩与解压
14. 【Linux教程】文件压缩与解压
66 0
|
7月前
|
Linux
linux 压缩包管理压缩解压查看 追加
linux 压缩包管理压缩解压查看 追加
59 0
27Linux - 文件管理(文件压缩解压:zip、unzip)
27Linux - 文件管理(文件压缩解压:zip、unzip)
48 1
27Linux - 文件管理(文件压缩解压:zip、unzip)