centos7打包压缩与搜索命令

在网络上,人们越来越倾向于传输压缩格式的文件,原因是压缩文件体积小,在网速相同的情况下,传输时间短。下面将学习如何在Linux系统中对文件进行打包压缩与解压,以及让用户基于关键词在文本文件中搜索相匹配的信息、在整个文件系统中基于指定的名称或属性搜索特定文件。本节虽然只有3条命令,但是其功能都比较复杂而且参数很多,因此放到了本章最后讲解。

1.tar命令

tar命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”。

在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,我们不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的。刘遄老师将讲解最重要的几个参数,以方便大家理解。tar命令的参数及其作用如表2-14所示。

表2-14                                                  tar命令的参数及其作用

参数作用

-c创建压缩文件

-x解开压缩文件

-t查看压缩包内有哪些文件

-z用Gzip压缩或解压

-j用bzip2压缩或解压

-v显示压缩或解压的过程

-f目标文件名

-p保留原始的权限与属性

-P使用绝对路径来压缩

-C指定解压到的目录


首先,-c参数用于创建压缩文件,-x参数用于解压文件,因此这两个参数不能同时使用。其次,-z参数指定使用Gzip格式来压缩或解压文件,-j参数指定使用bzip2格式来压缩或解压文件。用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。在执行某些压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用-v参数向用户不断显示压缩或解压的过程。-C参数用于指定要解压到哪个指定的目录。-f参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。刘遄老师一般使用“tar

-czvf 压缩包名称.tar.gz要打包的目录”命令把指定的文件进行打包压缩;相应的解压命令为“tar

-xzvf 压缩包名称.tar.gz”。下面我们来逐个演示下打包压缩与解压的操作。先使用tar命令把/etc目录通过gzip格式进行打包压缩,并把文件命名为etc.tar.gz:


[root@linuxprobe ~]# tar-czvf etc.tar.gz /etc

tar: Removing leading '/' from member names

/etc/

/etc/fstab

/etc/crypttab

/etc/mtab

/etc/fonts/

/etc/fonts/conf.d/

/etc/fonts/conf.d/65-0-madan.conf

/etc/fonts/conf.d/59-liberation-sans.conf

/etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf

/etc/fonts/conf.d/59-liberation-mono.conf

/etc/fonts/conf.d/66-sil-nuosu.conf

………………省略部分压缩过程信息………………


接下来将打包后的压缩包文件指定解压到/root/etc目录中(先使用mkdir命令来创建/root/etc目录):


[root@linuxprobe ~]# mkdir /root/etc

[root@linuxprobe ~]# tar xzvf etc.tar.gz -C /root/etc

etc/

etc/fstab

etc/crypttab

etc/mtab

etc/fonts/

etc/fonts/conf.d/

etc/fonts/conf.d/65-0-madan.conf

etc/fonts/conf.d/59-liberation-sans.conf

etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf

etc/fonts/conf.d/59-liberation-mono.conf

etc/fonts/conf.d/66-sil-nuosu.conf

etc/fonts/conf.d/65-1-vlgothic-gothic.conf

etc/fonts/conf.d/65-0-lohit-bengali.conf

etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf

………………省略部分解压过程信息………………


2.grep命令

grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。grep命令的参数及其作用如表2-15所示。

表2-15                                                grep命令的参数及其作用

参数作用

-b将可执行文件(binary)当作文本文件(text)来搜索

-c仅显示找到的行数

-i忽略大小写

-n显示行号

-v反向选择—仅列出没有“关键词”的行


grep命令是用途最广泛的文本搜索匹配工具,虽然有很多参数,但是大多数基本上都用不到。刘遄老师在总结了近10年的运维工作和培训教学的经验后,提出的本书的写作理念“去掉不实用”绝对不是信口开河。如果一名IT培训讲师的水平只能停留在“技术的搬运工”层面,而不能对优质技术知识进行提炼总结,那对他的学生来讲绝非好事。我们在这里只讲两个最最常用的参数:-n参数用来显示搜索到信息的行号;-v参数用于反选信息(即没有包含关键词的所有信息行)。这两个参数几乎能完成您日后80%的工作需要,至于其他上百个参数,即使以后在工作期间遇到了,再使用man

grep命令查询也来得及。

在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息:


[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd

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

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

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

………………省略部分输出过程信息………………


3.find命令

find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件操作”。

本书中曾经多次提到“Linux系统中的一切都是文件”,接下来就要见证这句话的分量了。在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。find命令的参数以及作用如表2-16所示。

表2-16                                               find命令中的参数以及作用

参数作用

-name匹配名称

-perm匹配权限(mode为完全匹配,-mode为包含即可)

-user匹配所有者

-group匹配所有组

-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)

-atime -n +n匹配访问文件的时间(-n指n天以内,+n指n天以前)

-ctime -n +n匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

-nouser匹配无所有者的文件

-nogroup匹配无所有组的文件

-newer f1 !f2匹配比文件f1新但比f2旧的文件

--type b/d/c/p/l/f匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

-size匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

-prune忽略某个目录

-exec ……{}\;后面可跟用于进一步处理搜索结果的命令(下文会有演示)

这里需要重点讲解一下-exec参数重要的作用。这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于第3章将要讲解的管道符技术,并且由于find命令对参数的特殊要求,因此虽然exec是长格式形式,但依然只需要一个减号(-)。

根据文件系统层次标准(Filesystem Hierarchy Standard)协议,Linux系统中的配置文件会保存到/etc目录中(详见第6章)。如果要想获取到该目录中所有以host开头的文件列表,可以执行如下命令:


[root@linuxprobe ~]# find /etc -name "host*" -print

/etc/avahi/hosts

/etc/host.conf

/etc/hosts

/etc/hosts.allow

/etc/hosts.deny

/etc/selinux/targeted/modules/active/modules/hostname.pp

/etc/hostname


如果要在整个系统中搜索权限中包括SUID权限的所有文件(详见第5章),只需使用-4000即可:


[root@linuxprobe ~]# find / -perm -4000 -print

/usr/bin/fusermount

/usr/bin/su

/usr/bin/umount

/usr/bin/passwd

/usr/sbin/userhelper

/usr/sbin/usernetctl

………………省略部分输出信息………………

"2Q��%�

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容