马哥教育网络班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

相关推荐

  • DHCP&PXE&Cobbler

    DHCP&PXE&Cobbler

    2018-08-01
  • LVM(重要)

    LVM   LVM(Logical Volume Manger),是一种磁盘分区管理机制,可以灵活的调整分区的大小。它是将多个硬盘组成卷组的形式实现的。说白了就是通过软件来实现对分区灵活管理。   LVM是将多块硬盘组成PV,再由PV组成VG,VG再组成lv,然后在lv上创建文件系统。   物理存储介:指的就是硬盘等,最基本的存储单元。   PV(physi…

    Linux干货 2016-08-30
  • 创建及管理KVM工具之virsh

    一、什么是虚拟化 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。 二、虚拟化能做什么 CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 三、虚拟化…

    Linux干货 2017-01-19
  • IO重定向和管理及管道

    IO重定向   通常对程序来讲,输入输出数据可以是键盘、鼠标、显示器等;IO重定向就是将原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器输出而是希望输入到某以文件中的可以通过Linux重定向进行这项工作。  IO重定向和FD(File Descriptor)有关。      标准输入(std…

    Linux干货 2016-08-05
  • Linux基础知识(一)

     本文的主要内容是:  1.计算机基本组成及其功能  2.linux的发行版,以及他们之间的联系和区别  3.Linux的哲学思想  4.Linux的上的命令的使用格式  5.基础命令 ifconfig,echo,tty,startx,export,pwd,history,shutdown,powe…

    Linux干货 2016-09-17
  • 用户和组相关配置文件

    1. /etc/passwd文件详解 输入vi /etc/passwd 可以查看此文件的内容 [root@localhost ~]# vi /etc/passwdroot:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/…

    Linux干货 2016-10-23

评论列表(1条)

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

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