马哥教育网络班20期+第5周课程练习

马哥教育网络班20期+第5周课程练习

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

# grep -E "^[[:space:]]+" /boot/grub/grub.conf

实例演示
[root@C664BSLab ~]# grep -E "^[[:space:]]+" /boot/grub/grub.conf
   root (hd0,0)
   kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg_c664bslab-lv_root rd_NO_LUKS.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_c664bslab/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_c664bslab/lv_root rd_NO_DM rhgb quiet
   initrd /initramfs-2.6.32-573.el6.x86_64.img

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

# grep -E "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit

实例演示
[root@C664BSLab ~]# grep -E "^#[[: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.

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

# netstat -tan | grep -E "LISTEN[[:space:]]*$"

实例演示
[root@C664BSLab ~]# netstat -tan | grep -E "LISTEN[[:space:]]*$"
tcp        0      0 0.0.0.0:50048               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 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 :::54890                    :::*                        LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::80                       :::*                        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相同的用户的信息;

# useradd bash
# useradd testbash
# useradd basher
# useradd -s /sbin/nologin nologin
# grep -E "^([[:alpha:]]+\>).*\1$" /etc/passwd

实例演示
[root@C664BSLab ~]# useradd bash
[root@C664BSLab ~]# useradd testbash
[root@C664BSLab ~]# useradd basher
[root@C664BSLab ~]# grep -E "^([[:alpha:]]+\>).*\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:502:502::/home/bash:/bin/bash
nologin:x:505:505::/home/nologin:/sbin/nologin

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

# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f1,7

实例演示
[root@C664BSLab ~]# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f1,7
root:/bin/bash
fedora:/bin/bash
user1:/bin/bash

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

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

实例演示
[root@C664BSLab ~]# grep -E -o "\<[[:alpha:]]+\>\(\)" /etc/rc.d/init.d/functions
checkpid()
daemon()
killproc()
pidfileofproc()
pidofproc()
status()

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

    扩展:取出其路径名

# echo "/etc/rc.d/init.d/functions" | grep -E -o "[^/][[:alpha:]]+/?$"
# echo "/etc/rc.d/init.d/functions" | grep -E -o "^(/.*/)"    

实例演示
[root@C664BSLab ~]# echo "/etc/rc.d/init.d/functions" | grep -E -o "[^/][[:alpha:]]+/?$"
functions
[root@C664BSLab ~]# echo "/etc/rc.d/init.d/functions" | grep -E -o "(/.*/)" 
/etc/rc.d/init.d/

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

# ifconfig | grep -E -o "\<([1-9][0-9]?|[1][0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

实例演示
[root@C664BSLab ~]# ifconfig | grep -E -o "\<([1-9][0-9]?|[1][0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
29
192
168
225
136
192
168
225

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

# ifconfig | grep -E -o "([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])"

实例演示
[root@C664BSLab ~]# ifconfig | grep -E -o "([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])"
192.168.225.136
192.168.225.255
255.255.255.0
127.0.0.1
255.0.0.0

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

# echo "This is a test e-mail address test2_Ecd@test.com" | grep -E -o "[[:alnum:]_]+\@[[:alpha:]]+\.[[:alpha:]]+"

实例演示
[root@C664BSLab ~]# echo "This is a test e-mail address test2_Ecd@test.com" | grep -E -o "[[:alnum:]_]+\@[[:alpha:]]+\.[[:alpha:]]+"
test2_Ecd@test.com

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

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

实例演示
[root@C664BSLab ~]# find /var -user root -group mail -ls
1049287    4 drwxrwxr-x   2 root     mail         4096 Jul  5 08:45 /var/spool/mail

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

# find / \( -nouser -o -nogroup \) -ls

实例演示
[root@C664BSLab ~]# find / \( -nouser -o -nogroup \) -ls
262145    4 drwx------   2 508      508          4096 Jul  5 10:08 /home/tuser1
262149    0 -rw-rw-r--   1 508      508             0 Jul  5 10:08 /home/tuser1/abc.txt
1049732    0 -rw-rw----   1 508      mail            0 Jul  5 10:08 /var/spool/mail/tuser1

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

# find / \( -nouser -o -nogroup \) -a -atime -3 -ls

实例演示
[root@C664BSLab ~]# find / \( -nouser -o -nogroup \) -a -atime -3 -ls
262145    4 drwx------   2 508      508          4096 Jul  5 10:08 /home/tuser1
262148    4 -rw-r--r--   1 508      508           176 May 11 07:21 /home/tuser1/.bash_profile
262150    4 -rw-------   1 508      508            25 Jul  5 10:08 /home/tuser1/.bash_history
262146    4 -rw-r--r--   1 508      508           124 May 11 07:21 /home/tuser1/.bashrc
262147    4 -rw-r--r--   1 508      508            18 May 11 07:21 /home/tuser1/.bash_logout
262149    0 -rw-rw-r--   1 508      508             0 Jul  5 10:08 /home/tuser1/abc.txt
1049732    0 -rw-rw----   1 508      mail            0 Jul  5 10:08 /var/spool/mail/tuser1

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

# find /etc -perm -222 -ls

实例演示
find /etc -perm -222 -ls
524956    0 lrwxrwxrwx   1 root     root           15 Jun 27 23:21 /etc/rc.sysinit -> rc.d/rc.sysinit
524545    0 lrwxrwxrwx   1 root     root           30 Jun 27 22:59 /etc/fonts/conf.d/40-nonlatin.conf -> ../conf.avail/40-nonlatin.conf
524552    0 lrwxrwxrwx   1 root     root           30 Jun 27 22:59 /etc/fonts/conf.d/65-nonlatin.conf -> ../conf.avail/65-nonlatin.conf

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

# find /etc -type f -size +1M -exec ls -lh {} \;

实例演示
[root@C664BSLab ~]# find /etc -type f -size +1M -exec ls -lh {} \;
-rw-r--r--. 1 root root 8.1M Jun 27 23:22 /etc/selinux/targeted/modules/active/policy.kern
-rw-r--r--. 1 root root 8.1M Jun 27 23:22 /etc/selinux/targeted/policy/policy.24

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

# find /etc/init.d -perm -113 -ls

实例演示
[root@C664BSLab ~]# find /etc/init.d -perm -113 -ls
526070    0 lrwxrwxrwx   1 root     root           11 Jun 27 23:20 /etc/init.d -> rc.d/init.d

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

# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls

实例演示
[root@C664BSLab ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls
2628995   12 -rwsr-xr-x   1 abrt     abrt        10296 May 12 04:43 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

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

# find /etc -not -perm -222 -ls

实例演示
[root@C664BSLab ~]# find /etc -not -perm -222 -ls
524289   12 drwxr-xr-x 105 root     root        12288 Jul  5 10:08 /etc
525293    4 drwxr-xr-x   2 root     root         4096 Jun 27 23:21 /etc/postfix
525306    8 -rw-r--r--   1 root     root         5113 Nov 10  2015 /etc/postfix/master.cf
525302   12 -rw-r--r--   1 root     root         9904 Nov 10  2015 /etc/postfix/generic
525309   16 -rw-r--r--   1 root     root        12494 Nov 10  2015 /etc/postfix/virtual

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

# find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls

实例演示
[root@C664BSLab ~]# find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls
525528    0 -rw-r--r--   1 user1    user1           0 Jul  5 10:53 /etc/abc.txt

原创文章,作者:N20-背旅,如若转载,请注明出处:http://www.178linux.com/23433

(0)
N20-背旅N20-背旅
上一篇 2016-07-12
下一篇 2016-07-12

相关推荐

  • 8月5日课堂及课后作业

    课堂作业 1.找出ifconfig命令结果中的IP地址 [root@localhost ~]# ifconfig |head -2|grep "inet" |tr " " ":"|cut -d:&nb…

    2016-08-08
  • Linux文本管理及grep内容过滤实战

    马哥教育网络班21期-第四周课程练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -R /etc/skel /home/tuser1 [root@localhost&nbs…

    2016-07-29
  • heartbeat实现高可用集群(2)

    [[ heartbeat v2 + crm ]] 环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.81 daemon httpd ha web service ip httpd node1&2 # vim ha.cf crm on # cd # rpm -ivh heartbeat-gui…

    Linux干货 2017-11-03
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。      2、取出最后登录到当前系统的用户的相关信息。         3、取出当前系统上被用户当作其默认shell的最多的那个shell。     4、将/etc/passwd…

    2016-06-17
  • AWK 的用法

    目录: 一、概述 二、awk基本语法格式 三、awk基本操作 四、awk条件及循环语句 五、awk函数 六、awk演示示例(源自于man手册) 一、概述 产品概述:  awk是一种编程语言,用于在linux/unix下对文本和数据进行扫描与处理。数据可以来自标准输入、文件、管道。&nbsp…

    Linux干货 2017-05-30
  • Openssl加密解密原理+CA自建实现

     Openssl加密解密原理+CA自建实现     前言 互联网的惊人发展使企业和消费者都感到非常兴奋,它正改变着我们的生活和工作方式。但是,互联网的安全程度如何——尤其是在通过它发送机密信息时的安全性——已经成为人们关心的主要问题。随着时代的发展,加密原理也不断地在更新换代. 数据的加密目前已广泛地运用于战争,商业活…

    Linux干货 2015-05-25

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-12 13:45

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