grep、find练习

1.显示当前系统上root,fedora或user1用户的默认shell

[root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7
/bin/bash
/bin/bash
/bin/bash

2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

 [root@study ~]# grep -E -o "\<[[:alpha:]]+\>\(\)" /etc/rc.d/init.d/functions
 checkpid()
 daemon()
 killproc()
 pidfileofproc()

3.使用echo命令输出一个绝对路径,使用grep取出其基名

[root@study ~]# echo "/etc/sysconfig/network-scripts/"|grep -o -E '[^/]+/?$'|cut -d/ -f1
network-scripts

扩展:取出其路径名

[root@study ~]# echo "/etc/sysconfig/network-scripts/"|grep -E '^/.*/$'
/etc/sysconfig/network-scripts/

4.找出ifconfig命令结果中的1-255之间的数字;

[root@study ~]# ifconfig|grep -o -E '[1-9]|[1-9][0-9]|1[0-9]{1,2}|2[0-4][0-9]|25[0-5]'
167
77
73
6
……

5.写出一个模式,能匹配合理IP地址

[root@study ~]# ifconfig|grep -o -E '([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|2[0-4][0-9]|25[0-4])\.([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|2[0-4][0-9]|25[0-4])\.([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|2[0-4][0-9]|25[0-4])\.([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|2[0-4][0-9]|25[0-4])'
 192.168.235.128
 192.168.235.255

6.写一个模式,匹配邮件地址

[root@study ~]# grep -E -o "\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\>" mailadd 
141215@qq.com
2522nfsnf@163.com

7.查找/var目录下属主为root,且属组为mail的所有文件或目录

[root@study var]# find /var/ -user root -group mail
/var/spool/mail

8.查找当前系统上没有属主或属组的文件,进一步:查找当前系统上没有属主或属组,且最近三天曾被访问过的文件或目录

[root@study var]# find / -nouser -o -nogroup -a -atime 3

9.查找/etc目录下所有用户都有写权限的文件

[root@study var]# find /etc/ -perm /020

10.查找/etc目录下大于1M,且类型为普通文件的所有文件

[root@study var]# find /etc/ -size +1M -type f
/etc/udev/hwdb.bin
/etc/selinux/targeted/policy/policy.29

12.查找/usr目录下不属于root,bin或hadoop的文件

[root@study ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \)
/usr/share/polkit-1/rules.d

13.查找/etc目录下至少有一类用户没有写权限的文件

[root@study ~]# find /etc/ -not -perm /222

14.查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件

[root@study ~]# fing /etc/ -ctime 7 -a -not \( -user root -o -user hadoop \)

原创文章,作者:N24_小康,如若转载,请注明出处:http://www.178linux.com/61032

(0)
N24_小康N24_小康
上一篇 2016-11-27 12:23
下一篇 2016-11-27 16:04

相关推荐

  • Python函数式编程指南(四):生成器

    转自 http://www.cnblogs.com/huxi/archive/2011/07/14/2106863.html 生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。 这是函数式编程指南的最后一篇,似乎拖了一个星期才写好,嗯…… 转载请注明原作者和原文地…

    Linux干货 2015-03-09
  • 一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/226194    前面用了12个小节对DNS的基础、以及Windows的DNS系统作了较详细的描述,下面的几节主要是说一些有关DNS应用方面…

    2015-03-18
  • ACL概述

    ACL概述 一、什么是ACL ACL是linux系统中一种被称为访问控制列表的权限控制方法,它是一种权限分配之外的普遍范式。在一般情况下,要确认三个权限组:owner、group和other。而使用ACL则可以增加权限给其他用户或组别,不再仅仅是在“other”中定义权限,可以允许指定的用户拥有不同于其所属组的权限。 ACL支持多种Linux文件系统,包括e…

    2017-07-29
  • 数组、变量及bash的配置

    数组、变量及bash的配置 变量:存储单个元素的内存空间 数组:存储多个元素的内存空间,相当于多个变量集合 索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式 数组的声明 普通数组declare –a 关联数组 declare –A 普通数组可以不声明直接使用,关联数组必须先声明再使用 数组的赋…

    Linux干货 2016-08-26
  • LVM 2 介绍以及怎么使用?

    一、 LVM是什么? LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间, without getting caught up …

    Linux干货 2017-01-06
  • 从案例出发——命令总结之find篇

    在这篇文章中你将看到以下内容:1、find命令的格式、语法、及实际应用 2、3个时间戳的意义  3、各种文件类型的解释  4、软硬链接的区别 5、exec和xargs的区别 6、几个逻辑判断符的意义  7、通配符的意义  8、find 命令下时间查找的特殊定义 首先,来看看以下题目:   &nbsp…

    Linux干货 2016-03-25

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 22:27

    整体完成的不错,不过可以对grep做一下知识的总结,正则还是需要多练习掌握的。