第五周: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

相关推荐

  • LVM的创建与管理

    一、基本概念     1、LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。     2、why:通常在安装Linux系统的时候对磁盘进行一盘的分区,一旦日后分区或整个磁盘的空间…

    Linux干货 2016-06-22
  • 编程语言编年史

          我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是…

    Linux干货 2017-03-30
  • 网络属性配置(二)

    本文接上篇。。。 ip address -protocol address management. ip address add -add new protocol address   ip addr add IFADDR   label NAME :为额外添加的地址指明接口别名    [broadcast ADDRE…

    Linux干货 2017-01-02
  • 马哥教育网络班21期-第一周课程练习

    第一周课程练习 1、描述计算机的组成及其功能?         1.1 现代主流的计算机(冯·诺依曼体系)主要由五部分组成,分别是控制器、运算器、存储器、输入和输出设备。控制器和运算器对应我们现实计算机看到的CPU,存储器对应内存和硬盘等存储设备,输入设备对应鼠标键盘等其它外设,输出设备对应显示器、音响、打印机等其它外…

    Linux干货 2016-06-26
  • 链接分析算法之:SALSA算法

      SALSA算法的初衷希望能够结合PageRank和HITS算法两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的“随机游走模型”,这是SALSA算法提出的背景。由此可见,SALSA算法融合了PageRank和HITS算法的基本思想,从实际效果来说,很多实验数据表明,SALSA的搜索效果也都优于前两个算…

    大数据运维 2015-07-21
  • 破坏grub实验之一

    1、删除grub stage1阶段 [root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out 446 bytes …

    Linux干货 2016-09-19