打包压缩与搜索命令

在Linux系统中对于文件的打包压缩与解压的方法,以及让用户可以基于一个关键词在文本文件中搜索匹配信息,与基于指定的名称或属性在整个文件系统中搜索匹配特定文件的超级实用命令linux

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

        Windows系统中最多见的压缩格式是.rar与.zip吧,而Linux系统中常见的格式比较多,但主要使用的是.tar或.tar.gz或.tar.bz2格式,同窗们不用担忧格式好多而记不住,其实这些大部分都是由tar命令来完成的,我来把最重要的几个参数讲给大家下,首先“-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目录中:spa

[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



find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操做”。orm

  “Linux系统中的一切都是文件”。在Linux系统中的搜索工做通常都是经过find命令来完成的,它能够根据不一样的文件特性来作为匹配项(如文件名、大小、修改时间、权限等信息),一旦匹配到了则会默认为用户显示到屏幕上来,基础的匹配项目请见下表便可,我主要讲解下“--exec”参数重要的做用,这个参数是用于将find命令搜索到的结果交由给后面的命令再进一步作处理,十分相似于我们将在下一章中提到的管道符技术。
ip

Linux系统中的配置文件根据FHS协议会被保存到/etc目录中(第六章精讲),若是我们要想获取到该目录中全部以host开头的文件就能够这样作:get

[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权限的文件,只需使用减号-4000便可:it

[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl

拔高题目:在整个的文件系统中找出全部归属于linuxprobe用户的文件并复制到/root/findresults目录。io

此题的重点是"-exec {} \;"其中的{}表明find命令搜索出的逐个文件,而且记得命令的结尾必须是\;class

[root@linuxprobe ~]# find / -user linuxprobe -exec cp -arf {} /root/findresults/ \;



 grep命令用于对文本内容进行关键词的搜索匹配,格式为:“grep [选项] [文件]”   (不是实时的噢)

      能够把grep命令看成是用途最普遍的文本搜索匹配工具,参数虽然不少但基本是用不到的,我用将近七年的工做和教学经验提出本书籍核心“去掉不实用”的写做理念绝对不是乱说,一名Linux讲师若是写书的水平只能停留在“技术的搬运工”而不成成为一名对真正优质技术知识的提炼者,那绝对会害了一大波学生,所以刘遄老师在这里只讲两个最经常使用的参数,只要会使用“-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
相关文章
相关标签/搜索