难搞的grep、find练习题

马哥教育网络班21期-第五周博客作业

1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

[root@caicai ~]# grep --color "^[[:space:]]\+" /boot/grub/grub.conf
          root (hd0,0)
                   kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg_caicai-lv_root rd_NO_LUKS rd_LVM_LV=vg_caicai/lv_root LANG=en_US.UTF-8 rd_LVM_LV=vg_caicai/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
                            initrd /initramfs-2.6.32-504.el6.x86_64.img

2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[root@caicai ~]# grep "^\#[[:space:]]\+[^[:space:]]\+" /etc/rc.d/rc.sysinit
  # /etc/rc.d/rc.sysinit - run once at boot time # Taken in part from Miquel van Smoorenburg's bcheckrc. 
  # Check SELinux status 
  # Print a text banner. 
  # Only read this once. 
  # Initialize hardware 
  . 
  . 
  . 并未粘贴给出所有匹配到的行。

3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

[root@caicai ~]# netstat -tan | grep "LISTEN[[:space:]]\+" 
tcp        0      0 0.0.0.0:52627              0.0.0.0:*                   LISTEN       
tcp        0      0 0.0.0.0:22                    0.0.0.0:*                   LISTEN       
tcp        0      0 127.0.0.1:631              0.0.0.0:*                   LISTEN       
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN       
tcp        0      0 0.0.0.0:111                  0.0.0.0:*                   LISTEN       
tcp        0      0 :::22                                 :::*                        LISTEN       
tcp        0      0 ::1:631                             :::*                        LISTEN       
tcp        0      0 ::1:25                               :::*                        LISTEN       
tcp        0      0 :::38556                           :::*                        LISTEN       tcp        0      0 :::111                               :::*                        LISTEN

4、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

这题我使用bash脚本 
#!/bin/bash 
id bash &> /dev/mull || useradd bash 
id testbash &> /dev/null || useradd testbash 
id basher &> /dev/null || useradd basher 
id nologin &> /dev/null || useradd -s /sbin/nologin nologin 
grep --color "^\(\b[[:alnum:]]\+\b\).*\1$" /etc/passwd 
#grep --color -E "^(\b[[:alnum:]]+\b).*\1$" /etc/passwd

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

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

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

[root@caicai ~]# grep -E --color "\b.*[[:alpha:]].*\b\(\)" /etc/rc.d/init.d/functions  
fstab_decode_str() { 
checkpid() { 
__readlink() { 
__fgrep() { 
__umount_loop() { 
__umount_loopback_loop() { 
__pids_var_run() { 
. 
. 
. 
并未粘贴给出所有匹配到的行。

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

[root@caicai ~]# echo "/etc/qwe/asd/zxc" | grep -o "\b\/[[:alnum:]]\+\b$" 
/zxc 

[root@caicai ~]# echo "/etc/qwe/asd/zxc" | grep -o --color "\/.*\/" 
/etc/qwe/asd/

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

[root@caicai ~]# ifconfig | grep -E --color "\b[0-9]{1,2}\b|\b1[0-9]{1,2}\b|2[0-4][0-9]?\b|\b25[0-5]?\b"

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

[root@caicai ~]# ifconfig | grep -E --color "((\b[0-9]{1,2}\b|\b1[0-9]{1,2}\b|2[0-4][0-9]?|\b25[0-5]?)\b\.){3}(\b[0-9]{1,2}\b|\b1[0-9]{1,2}\b|2[0-4][0-9]?|\b25[0-5]?\b)"
           inet addr:192.168.183.128  Bcast:192.168.183.255  Mask:255.255.255.0           
           inet addr:127.0.0.1  Mask:255.0.0.0

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

[root@caicai ~]# cat mail  
123@163.com 
asdaf@qq.com 
j4l3jlqF@outlook.com 
jijibab 
1234 
asd_123@yahoo.com  lkskdj@yahoo.com 


[root@caicai ~]# grep --color ".*@.*\.com" ./mail     
123@163.com 
asdaf@qq.com 
j4l3jlqF@outlook.com 
asd_123@yahoo.com  lkskdj@yahoo.com

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

[root@caicai ~]# find /var -user root -a -group mail -ls  
525464    4 drwxrwxr-x   2 root     mail         4096 Jul 14 19:40 /var/spool/mail

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

[root@caicai ~]# find / -nouser -a -nogroup

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

[root@caicai ~]# find / -nouser -a -nogroup -a -atime -3

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

[root@caicai ~]# find /etc -perm -111

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

[root@caicai ~]# find /etc -size +1M -a -type f -exec ls -lh {} \; 
-rw-r--r--. 1 root root 7.8M Jun 24 18:52 /etc/selinux/targeted/policy/policy.24 
-rw-r--r--. 1 root root 7.8M Jun 24 18:52 /etc/selinux/targeted/modules/active/policy.kern 
-rw-r--r--. 1 root root 2.2M Jun 24 18:56 /etc/gconf/gconf.xml.defaults/%gconf-tree.xml

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

[root@caicai ~]# find /etc/init.d/ -perm -113

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

[root@caicai ~]# find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls 
795159   12 -rwsr-xr-x   1 abrt     abrt        10296 Oct 16  2014 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

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

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

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

[root@caicai ~]# find /etc -mtime -7 -a -not -user root -o -not -user hadoop

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

赞 (0)
N21_志建N21_志建
上一篇 2016-07-26 16:42
下一篇 2016-07-26 16:43

相关推荐

  • zabbix 自动注册(registration)实例

    原理: Zabbix_agnetd ==> Zabbix_server 【agnet自动发数据到server端】 实现目的:zabbix 根据计算机名称识别如(XLH-PROD-XXX)条件,自动添加相关服务器(组group+相关监控模板)  部署步骤 1.创建新的模板,主机组 1.1 新增或模板【组态】【模板】手选一个模板 如果已…

    Linux干货 2016-09-15
  • Nginx专题: 从编译安装到URL重写

    Nginx专题: 从编译安装到URL重写 前言 环境介绍 Nginx介绍 编译安装Nginx 配置文件解释 main和event{}的配置 http{}的基本配置 配置Nginx 搭建一个基本的Nginx Web服务器 实现https 创建CA并签署Nginx证书 修改配置文件 测试https 实现URL Rewrite将不同浏览器的请求响应不同页面 URL…

    Linux干货 2016-04-04
  • 如何删除一个目录下的所有文件,但保留一个指定文件。附一些常用命令

    解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10   十个文件 方法如下: find /date -type f ! -name “file10″|xargs rm -f 另外还有其他的方法比如:rsync命令和bush的 extglob功能等。在此不一一列举。 附常用命令: 文件和目…

    2017-07-15
  • Varnish基础进阶

    Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人、朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带…

    Linux干货 2016-04-19
  • Vim编辑器解析

    vim编辑器 概述:   VIM即ViIMproved:vi的增强版 ,vim是模式化的编辑。   vi:Visual lnterface,是一种文本编辑器,所谓文本编辑数据是基于字符编码的文件,常见的编码 有ASCII编码,UNICODE编码。 种类:   行编辑器:所谓行编辑器是指一行行来编辑处理的工具   全屏编…

    Linux干货 2016-08-10
  • 如何加密/混乱C源代码

    之前发表了《6个变态的C语言Hello World程序》[酷壳链接] [CSDN链接],主要是是像大家展示了一些C语言的变态玩法。也向大家展示了一下程序是可以写得让人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都觉得很好玩,是的,那本来是用来供朋友们“消遣作乐”,供娱乐娱东而已,不必太过认真。 不过,通过这种极端的写法,大家可以看到源代码都可以写得那…

    Linux干货 2016-05-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 15:13

    写的很好,排版也很棒,加油