Linux 第19天 sed和压缩工具

时间: 20180806


目录

压缩解压缩

gzip/gunzip/zcat

bzip/bunzip/bzcat

xz/unxz/xzcat

zip/unzip

tar, cpio

sed


压缩解压缩


gzip/gunzip .gz 这个工具只能单文件压缩

-# 1-9 指定压缩比

-d decompress 解压缩

-c 将原文件内容输出至标准输出,以供重定向来备份文件,此种方式备份不会删除原文件

gzip -c /etc/shadow > /path/file.gz

zcat 查看.gz压缩格式的文件内容


bzip2/bunzip2 .bz2 

-d 解压缩.bz2后缀的文件

-k 不删除原文件压缩

-c 将文件内容输出至标准输出以供重定向压缩或解压缩,而不动原文件

bzcat 查看.bz2文件类型的内容


xz/unxz 压缩或解压缩xz的文件

-d 解压缩xz的压缩文件

-k 在压缩文件时保留原文件

xzcat 查看xz文件类型的内容


zip/unzip 支持压缩目录

-r 递归压缩,表示将目录里的所有文件打包并压缩成一个文件


tar 归档压缩工具

-c create 创建新的归档文件

-v 浏览压缩过程

-f 指定归档的文件名或要解压的文件名

-x extract 解压归档

-C 指定解压后的文件存放位置

-p 归档时保留文件的原始权限

-r 将新的要归档文件附加至一个归档文件中

-t 显示或列出归档文件列表

-j 归档后使用bzip2将文件压缩

-z 归档后使用gzip将文件压缩

-J 归档后使用xz将文件压缩

-exclude=pattern 归档时排除所指定的路径中某些文件名

-T 选项指定输入文件

-X 指定要排除的文件

file 查看文件的类型


splist 将文件分片存放,以方便未来上专网站时不让大文件传输

-b 指定要拆分的单文件大小

-d 指定数字,被拆分的文件后缀都会是一个数字默认为字母

合并方式

cat x* > original.file


cpio 归档压缩工具

> 文件名或者设备名

< 文件名或者设备名

-o 运行copy-out mode即标准输入输出模式

-O 指定要归档的文件

-A 附加所指定的文件至一个已经存在的归档文件中

-i extract 运行copy-in mode即从标准输入读取归档文件并输出至标准输出

-l 链接文件而不是复制他们

-t 输出内容列表

-F 指定归档的文件路径

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

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



文本处理工具sed

sed

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

-n 静默模式,默认是打印文档的每一行

-e 实现多个scripts连接类似grep -e

-f 指定一个scripts文件路径

-r 使用扩展的正则表达式

-i[.back] 修改原文件,如果.back加上则会在修改之前将原文件名改为*.back再修改


script

'地址定界'

# 给定具体的行号 $最后一行 ^第一行

/pattern/ 被模式匹配到的行

#,# 从起始#到结束#的行

#,+# 从起始#往后的+#行

/patr1/,/patr2/ 从第一个part1匹配到第一个part2匹配到结束循环查找

1~2 前边1为起始行,后边2步进行为多少实现奇偶行打印

编辑命令

d 删除

p 打印

a [\]text 附加文本至匹配到的行后

i [\]text 附加文件至匹配到的行前

c [\]text 修改所匹配到的行

w 将修改的文件保存至所指定的文件

r 读取指定的文件至所匹配到的行后

= 显示所匹配到的行的行号

! 取反

s/// 查找替换

g 全局替换

p 显示替换成功的行

w 将替换成功的行写入文件中

\u 转换文件的字符为大写

\l 转换文件的字符为小写

s//'''VAR'''/后边替换调用变量


sed的高级编辑命令

P 打印模式空间开端至\n内容,并追加至默认输出之前

h 把模式空间中的内容覆盖至保持空间中

H 把模式空间中的内容追加至保持空间中

g 从保持空间中取出数据并覆盖至模式空间中

G 从保持空间中取出数据并追加至模式空间中

x 把保持中的内容和模式空间中的内容进行互换

n 读取匹配到的行的下一行覆盖至模式空间

N 读取匹配到的行的下一行追加至模式空间

d 删除模式空间中的行

D 如果模式空间中包含换行符,则删除直到第一个换行符出现的模式空间中的文本

  并不会读取新的输出行,而使用合成的模式空间重新启动循环。如果模式空间不

  包含换行符,则会像发出d命令那样启动正常新的循环



ldd 查看命令所调用的库文件

ldconfig 显示目前系统所加载的共享库

-p 显示目前系统已经加载至内存的共享库文件