- tar命令
- grep命令
- find命令
tar命令
tar命令用于对文件进行打包压缩或解压。
格式:
tar [选项] [文件]
说明:
在Linux系统中,常见的压缩文件格式主要有:.tar、.tar.gz、.tar.bz2格式。这些格式都可以由tar命令来生成。
tar命令的参数及其作用:
-c:创建压缩文件-x:解开压缩文件-t:查看压缩包内有哪些文件-z:用Gzip压缩或解压-j:用bzip2压缩或解压-v:显示压缩或解压的过程,对于大文件的压缩很有用,会显示压缩状态。-f:目标文件名,该参数必须放在所有参数的最后一位,代表要压缩或解压的软件包名称。-p:保留原始的权限与属性-P:使用绝对路径来压缩-C:指定解压到的目录
上述的参数可以组合使用,推荐组合如下:
把指定的文件进行打包压缩: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
...
示例二,将打包后的压缩包文件指定解压到/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
....
grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果。
格式:
grep [选项] [文件]
说明:
grep命令是用途最广泛的文本搜索匹配工具,常用的参数及其作用如下所述:
-b:将可执行文件(binary)当作文本文件(text)来搜索-c:仅显示找到的行数-i:忽略大小写-n:用来显示搜索到信息的行号-v:反向选择——仅列出没有“关键词”的行。
示例,使用grep命令来查找出当前系统中不允许登录系统的所有用户信息 (在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统):
[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
...
find命令
find命令用于按照指定条件来查找文件。
格式:
find [查找路径] 寻找条件 操作
说明:
在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。
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 …… {}\;:后面可跟用于进一步处理搜索结果的命令。该参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,类似于管道符技术,并且由于find命令对参数的特殊要求,因此虽然exec是长格式形式,但依然只需要一个减号(-)。
示例一,获取/etc目录中所有以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
[root@Linuxprobe ~]#
示例二,在整个系统中搜索权限中包括SUID权限的所有文件(只需使用-4000即可):
[root@Linuxprobe ~]# find / -perm -4000 -print
find: ‘/proc/6147/task/6147/fd/6’: No such file or directory
find: ‘/proc/6147/task/6147/fdinfo/6’: No such file or directory
find: ‘/proc/6147/fd/6’: No such file or directory
find: ‘/proc/6147/fdinfo/6’: No such file or directory
/root/桌面/vmware-tools-distrib/lib/bin64/vmware-user-suid-wrapper
/root/桌面/vmware-tools-distrib/lib/bin32/vmware-user-suid-wrapper
/usr/bin/fusermount
...
示例三,在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录:
该命令的重点是“-exec {} \;”参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是“\;”。完成该实验的具体命令如下:
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \;
参考资源
- 《Linux就应该这么学》
本文后续会随着知识的积累不断补充和更新,内容如有错误,欢迎指正。
最后一次更新时间:2018-08-15
共同学习,写下你的评论
评论加载中...
作者其他优质文章