第五周:grep和find的使用练习

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

grep -E "^(root|fedora|user1)" /etc/passwd | cut -d: -f7
grep -E "^root|fedora|user1" /etc/passwd

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

grep  "[[:alpha:]]\+\(()\)" /etc/rc.d/init.d/functions
grep  "\<[[:alpha:]]\+\(()\)" /etc/rc.d/init.d/functions

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

    扩展:取出其路径名

echo "/etc/tmpfiles.d" | grep -o "/[^/]*/\?$"
echo "/etc/sysconfig/network-scripts/" | egrep -o "^(/[^/]+)+/"

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

 ifconfig | egrep -o "\<([1-9][0-9]|[1-2][0-9][0-9]|2[0-5][0-5])\>"

5、挑战题:写一个模式,能匹配合理的IP地址;

ifconfig | egrep -o "\<([1-9][0-9]|[1-2][0-9][0-9]|2[0-5][0-4])\>\.\<([1-9][0-9]|1[0-9][0-9]|2[0-5][0-4])\>\.\<([1-9][0-9]|1[0-9][0-9]|2[0-5][0-4])\>\.\<([1-9][0-9]|1[0-9][0-9]|2[0-5][0-4])\>"

6、挑战题:写一个模式,能匹配出所有的邮件地址;

echo "adsf adf aDDWD   liming.wang@wlm.com dwwf" | grep "[[:alpha:]\.]\+@[[:alpha:].]\+"

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

find /var -user root -a -group mail -ls

8、查找当前系统上没有属主或属组的文件;

find / -nouser -a -nogroup

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

    find / -atime -3 -nouser -a -nogroup

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

 find /etc/ -perm -222 -ls

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

find /etc/ -type f  -perm -222 -type f

11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

find /etc/init.d/ -type f  -perm -113

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

find /usr -type f ! -user root -a !  -user bin -a ! -user hadoop

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

find /etc/ -type f -perm /222 -ls
find /etc/ -type f -not -perm -222 -ls

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

find /etc/ -mtime -7 -a ! -user root -a ! -user hadoop

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

(0)
dawningdawning
上一篇 2016-10-25
下一篇 2016-10-26

相关推荐

  • 马哥教育21期网络班—第15周课程+练习

    2、删除/boot/grub/grub.conf文件中所有行的行首的空白字符; sed 's@^[[:space:]]\+@@' /boot/grub/grub.conf 3、删除/etc/fstab文件中所有以#开头,后跟至少一个空白字符的行的行首的#和空白字符; sed 's@^#[[:spac…

    Linux干货 2016-11-14
  • Linux基础知识之软件包管理(一)

    软件包管理 1.软件运行环境 运维工作的任务: 系统管理、库调用管理(开发接触的多,运维接触的少),安装配置某些程序包,让程序包运行并提供相应类型的服务 程序执行的过程:     程序源代码–>预处理–>编译–>汇编–>链接     预处理:将代码…

    Linux干货 2016-08-22
  • 学习宣言

    我的人生宣言:做人要学到老,活到老,最重要的玩到老啊。人的一生真的太短了,要做我们喜欢的事情,趁自己年轻的时候吧!行动吧!加油!!

    Linux干货 2016-12-26
  • shell中的位置参数变量

    要了解位置变量,首先要知道什么是变量?  变量就是让某一个特定的字符串来代表不固定的内容,简单理解就是用一个简单的“字眼”来替代另一个比较复杂或者容易变动的数据。 而什么又是位置变量呢?  位置变量就是bash将传递给脚本的参数,按照位置不同,保存在不同的位置变量中,以便于脚本调用这些变量。 位置参数变量: $1, $2, ……

    Linux干货 2016-08-12
  • 面向对象的实例方法,类方法和静态方法

    类方法和静态方法 普通函数 class Person: def normal_method(): print(‘normal’) Person.normal_method() # Person().normal_method() print(Person.__dict__) Person.normal_method()可以,是因为这个方法只是被Person这…

    2017-11-11
  • 文本三剑客之sed

    文本处理三剑客之sed sed 本身也是一个管线命令,是一个(流|行)编辑器! 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。工作模式是从源文件中一次读取一行,存储到sed自己的内存中进行处理,如果模式被匹配到就可以编辑并且输出到标准输出,如果没有被匹配到则直接输出到标准输出。     sed …

    Linux干货 2016-08-10