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

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

[root@C67-X64-A0 ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 
    root (hd0,0)
    kernel /tboot.gz logging=vga,serial,memory
    module /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 intel_iommu=on amd_iommu=on rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
    module /initramfs-2.6.32-573.el6.x86_64.img

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

[root@C67-X64-A0 ~]# 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
# Set default affinity
# Load other user-defined modules
# Load modules (for backward compatibility with VARs)

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

[root@C67-X64-A0 ~]# netstat -tan | grep "LISTEN*[[:space:]]"
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:36628               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 :::50695                    :::*                        LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN

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

[root@C67-X64-A0 ~]#  grep '^\([[:alnum:]]\+\>\).*\1$' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:1001:1001::/home/bash:/bin/bash
nologin:x:1004:1004::/home/nologin:/sbin/nologin

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

[root@C67-X64-A0 ~]# egrep "^(root|fedora|user1)" /etc/passwd|awk -F ":" '{print $1,$NF}'
root /bin/bash
fedora /bin/bash
user1 /bin/bash

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

[root@C67-X64-A0 ~]# egrep -o "^[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
checkpid()
daemon()
killproc()
pidfileofproc()
pidofproc()
status()
success()
failure()
passed()
warning()
action()
strstr()
confirm()

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

扩展:取出其路径名
[root@C67-X64-A0 ~]# echo /var/www/html/ |egrep -o '[^/]+/?$'|cut -d/ -f1
html
[root@C67-X64-A0 ~]# echo /var/www/html |egrep -o '[^/]+/?$'|cut -d/ -f1
html

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

如果不想消除重复,可以不用sort -nu
[ec2-user@ip-172-31-22-8 wanwan]$ ifconfig | egrep -o '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'|sort -nu
1
2
3
6
8
22
31
64
73
87
91
97
127
128
172
240
255

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

[ec2-user@ip-172-31-22-8 ~]$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.22.8  netmask 255.255.240.0  broadcast 172.31.31.255
        inet6 fe80::97:8ff:fe6c:87eb  prefixlen 64  scopeid 0x20<link>
        ether 02:97:08:6c:87:eb  txqueuelen 1000  (Ethernet)
        RX packets 649259  bytes 334885592 (319.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 488040  bytes 95253490 (90.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 10596  bytes 592200 (578.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10596  bytes 592200 (578.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[ec2-user@ip-172-31-22-8 ~]$ ifconfig | egrep -o '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
172.31.22.8
255.255.240.0
172.31.31.255
127.0.0.1
255.0.0.0

如果需要匹配网卡的IP地址:
CentOS6:
[root@C67-X64-A0 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:71:7C:0C  
          inet addr:10.10.10.129  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe71:7c0c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9483 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2582 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:687467 (671.3 KiB)  TX bytes:294100 (287.2 KiB)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:338 (338.0 b)  TX bytes:338 (338.0 b)
          
方法1:
[root@C67-X64-A0 ~]# ifconfig -a|grep "inet addr"|grep -v "127.0.0.1"|awk -F ":" '{print $2}'
10.10.10.129  Bcast
[root@C67-X64-A0 ~]# ifconfig -a|grep "inet addr"|grep -v "127.0.0.1"|awk -F ":" '{print $2}'|cut -d' ' -f1
10.10.10.129

方法2:
[root@C67-X64-A0 ~]# ifconfig -a|grep "inet addr"|grep -v "127.0.0.1"|awk -F ":" '{print $2}'|awk -F " " '{print $(NF-1)}'
10.10.10.129

CentOS7:
[root@zabbix ~]# ifconfig -a|grep inet|grep -v inet6|grep -v 127.0.0.1|awk '{print $2}'
10.203.12.88
[root@zabbix ~]# ifconfig -a|grep broadcast|cut -d' ' -f10
10.203.12.88
[ec2-user@ip-172-31-22-8 ~]$ ifconfig | egrep -o '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
172.31.22.8
255.255.240.0
172.31.31.255
127.0.0.1
255.0.0.0

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

[ec2-user@ip-172-31-22-8 ~]$ cat mail.txt 
wanlong_860514@163.com
314552@qq.com
wanzhixing@gmail.com
zhang3_li4_good@126.com
dpwanl@dfl.com.cn
方法1:
[ec2-user@ip-172-31-22-8 ~]$ cat mail.txt | grep '.*@.*\.[[:alpha:]]\+$'
wanlong_860514@163.com
314552@qq.com
wanzhixing@gmail.com
zhang3_li4_good@126.com
dpwanl@dfl.com.cn
方法2:
[ec2-user@ip-172-31-22-8 ~]$ cat mail.txt |egrep -o '[A-Za-z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4}'
wanlong_860514@163.com
314552@qq.com
wanzhixing@gmail.com
zhang3_li4_good@126.com
dpwanl@dfl.com.cn

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

[root@C67-X64-A0 ~]#  find /var/ -user root -group mail
/var/spool/mail
/var/spool/mail/root
[root@C67-X64-A0 ~]# ls -ld /var/spool/mail/
drwxrwxr-x. 2 root mail 4096 8月   2 13:28 /var/spool/mail/
[root@C67-X64-A0 ~]# ls -ld /var/spool/mail/root 
-rw-------. 1 root mail 2671 8月   2 09:19 /var/spool/mail/root

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

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

[root@C67-X64-A0 ~]# find / -nouser -o -nogroup -print0
find: “/proc/5244/task/5244/fd/5”: 没有那个文件或目录
find: “/proc/5244/task/5244/fd/5”: 没有那个文件或目录
find: “/proc/5244/task/5244/fdinfo/5”: 没有那个文件或目录
find: “/proc/5244/task/5244/fdinfo/5”: 没有那个文件或目录
find: “/proc/5244/fd/5”: 没有那个文件或目录
find: “/proc/5244/fd/5”: 没有那个文件或目录
find: “/proc/5244/fdinfo/5”: 没有那个文件或目录
find: “/proc/5244/fdinfo/5”: 没有那个文件或目录
[root@C67-X64-A0 ~]# find / \( -nouser -o -nogroup \) -atime -3 -print0

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

[root@C67-X64-A0 ~]#  find /etc -perm -222 |tail -5
/etc/httpd/logs
/etc/httpd/modules
/etc/rc5.d
/etc/system-release
/etc/favicon.png

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

[root@C67-X64-A0 ~]# find /etc -size +1M -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 1.1M 4月  24 2015 /etc/pki/tls/certs/ca-bundle.trust.crt
-rw-r--r--. 1 root root 8.0M 7月   6 00:13 /etc/selinux/targeted/policy/policy.24
-rw-r--r--. 1 root root 8.0M 7月   6 00:13 /etc/selinux/targeted/modules/active/policy.kern
-rw-r--r--. 1 root root 2.2M 7月   6 00:24 /etc/gconf/gconf.xml.defaults/%gconf-tree.xml
-rw-r--r--. 1 root root 1.4M 9月   5 2012 /etc/brltty/zh-tw.ctb

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

# find /etc/init.d/ -perm -113 -exec ls -l {} \;
---x--x-wx. 1 root root 0 Aug  2 19:09 /etc/init.d/test1
--wx-wx-wx. 1 root root 0 Aug  2 19:09 /etc/init.d/test2
-rwxrwxrwx. 1 root root 0 Aug  2 19:09 /etc/init.d/test3
可以看出权限:113、333、777均满足条件

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

[root@C67-X64-A0 ~]# find /usr/ -not \( -user root -o -user bin -o -user hadoop \)

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

[ec2-user@ip-172-31-22-8 wanwan]$ find . ! -perm -222 -ls 
50498537    4 drwxr-xr-x   2 root     root         4096 Aug  2 19:45 .
50498539    0 ---x--x-wx   1 root     root            0 Aug  2 19:09 ./test1
50498542    0 -r--r--r--   1 root     root            0 Aug  2 19:24 ./doc1
50498543    0 -r-xr-xr--   1 root     root            0 Aug  2 19:24 ./doc2
50498544    0 ---xr--r-x   1 root     root            0 Aug  2 19:24 ./doc3
50498545    0 -rwxr-x--x   1 root     root            0 Aug  2 19:25 ./doc4
50498546    0 -rwxrwxr--   1 root     root            0 Aug  2 19:25 ./doc5
50498547    0 -rwxr-xr-x   1 root     root            0 Aug  2 19:25 ./doc6
错误的理解:
[ec2-user@ip-172-31-22-8 init.d]$ find /etc/init.d/ -not -perm /222 -exec ls -l {} \;
-r--r--r--. 1 root root 0 Aug  2 19:24 /etc/init.d/doc1
-r-xr-xr--. 1 root root 0 Aug  2 19:24 /etc/init.d/doc2
---xr--r-x. 1 root root 0 Aug  2 19:24 /etc/init.d/doc3

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

[root@C67-X64-A0 ~]# find /etc -mtime -7 -not \( -user root -o -user hadoop \)
或者:
find /etc/ -mtime -7 -a -not -user root -a -not -user Hadoop

原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/27504

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • 马哥教育网络班20期+第六周博客作业

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

    Linux干货 2016-07-22
  • yum命令的使用及磁盘管理中命令的使用方法(mkfs ,blkid,e2label等)

    yum      #cd /etc/yum.repos.d          #yum repolist(在 #cd下)其他命令在 #cd /etc/yum.repos.d运行          #yum-config-manag…

    2017-08-19
  • 【26期】Linux第七周学习小总结

        今天给大家的分享是本周的一个有趣的小内容,LVM逻辑卷相关的,为什么分享这个内容呢?主要是刚没有接触或者说深入接触Linux时,有人在群里提问,如果不用虚拟机,那Centos本身有快照吗?当时说的答案很热闹,不过大部分还是倾向于没有快照,本周学习的逻辑卷管理器章节里,就这个问题给了一个准确答案,那我们一起来看一下吧!  …

    2017-08-26
  • Linux终端类型

    Linux终端类型 关键字:linux终端,串行终端ttySn;伪终端pty;控制终端tty;控制台终端console 要想与Linux打交道,就必须学会使用Linux终端。所谓Linux终端,其实也就是一种控制台,一种字符设备,通常用tty标识,它是用户和Linux内核交互的平台,用户能在平台上通过各种指令操作Linux。终端的特殊设备文件一般分为以下几种…

    Linux干货 2016-10-19
  • 通过webGUI显示日志信息

         日志信息通常对于我们维护人员有着极为重要的意义,能够为我们提供故障排查、运维监控、历史操作记录等等很多必要的信息。为了方便此类信息的获取,我们可以搭建日志服务器,并实现webGUI显示以便更直观形象的观察收集它们。     一、拓扑图         &nbs…

    Linux干货 2015-07-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-05 16:42

    写的很好,排版也很棒,加油,ip地址取的不对,按照你的写法试试999.999.999.999能不能匹配