难搞的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
下一篇 2016-07-26

相关推荐

  • 第一次写的linux脚本

    刚开始学的时候,都是一些基本的命令,总是无法把它们联系到一块去,现在刚开始接触脚本,顿时感觉压力好大,基础命令如果记不牢,很有可能就挂了,下面我把近几天学习的一些脚本命令及练习拿来分享一下,供大家参考,同时加深我的记忆。 首先是写脚本的格式,我这里用vim编辑器来写的脚本,因为它的色彩非常明艳,易于区分。基本格式如下: #!/bin/bash 第一行一般为调…

    Linux干货 2017-08-05
  • 基于BIND实现的DNS正反解析及主从DNS的配置

    基于BIND实现的DNS正反解析及主从DNS的配置 标签: DNS正反解析 DNS主从复制 测试环境 准备2台虚拟机,一台为主DNS,IP地址为:192.168.103.161。另一台为从DNS,IP地址为:192.168.103.162两台都装好bind,所需包有:bind,bind-utils,bind-libs 主DNS的配置文件 配置主文件/etc/…

    Linux干货 2016-04-11
  • kickstart+ftp+dhcp+tftp实现centos6的无人值守安装

    环境IP : 172.16.0.32 centos 6.6 一.安装相关包 安装图形界面 [root@localhost ~]# yum groupinstall “Desktop” “X Window System” “Chinese Support” [root@localhost ~]# yum -y install dhcp tftp-server …

    Linux干货 2017-06-03
  • 马哥教育网络班22期+第六周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; ]# cp -v  /etc/rc.d/rc.sysinit /tmp/    `/etc/rc.d/rc.sysinit' -> `/tmp/rc.sysinit&…

    Linux干货 2016-10-17
  • 进程管理和计划任务

    进程管理使用的工具以及命令,计划任务的创建和执行,以及工作中需要的注意事项

    2017-12-21
  • debian8下安装配置部署zabbix3.0

    一、安装配置zabbix server     web server服务器:172.28.0.187     mysql服务器:172.28.0.237     1、安装web server(172.28.0.187)  &nbs…

    Linux干货 2016-05-07

评论列表(1条)

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

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