马哥教育网络班21期-第五周课程练习

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

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

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

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

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

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

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

#!/bin/bash
if [ `id -u` -ne 0 ];then
   echo "noly root can add user."
   exit 3
fi
for user in {bash,testbash,basher,nologin};do
    if id $user &> /dev/null;then
       echo "$user exits. "
    elif [ "$user" == "nologin" ];then
       useradd $user -s /sbin/nologin 
    else useradd $user 
    fi
done
grep -E --color "^([[:alnum:]]+)\>.*\1$"  /etc/passwd

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

#!/bin/bash
for i in (root,fedora,user1);do
    grep "^$i\>" /etc/passwd | cut -d: -f1,7
done

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

# grep -E "\b.*\b\(\)" /etc/rc.d/init.d/functions

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

#!/bin/bash
read -p "enter a path." pathfile
   [ -z "$pathfile" ] && echo "please enter a path." && exit 1
echo $pathfile > /tmp/pathfile
echo  basename is `grep -o "/[^/]\+/\?$" /tmp/pathfile`
echo  dirname is `grep -o "^/.*/" /tmp/pathfile`

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

# ifconfig | grep -E "\b[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5]\b"

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

# grep  -Eo "\b(inet |addr:)([0-9]{1,3}.){3}[0-9]{1,3}\b"

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

# grep -Eo "[[:alnum:]]+[[:punct:]]*[[:alnum:]]*@[[:alnum:]]+.[[:alnum:]]*.?[[:alnum:]]*"

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

# find /var -user root -group mail

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

# find / -nouser -nogroup -atime -3

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

# find /etc -perm /222

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

 # find /etc -size +1M -type f

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

# find /etc/init.d -prem -113

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

# find /usr -not (-user root -a -user bin -a hadoop)

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

# find /etc -not -perm -222

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

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

原创文章,作者:哎哟喂,如若转载,请注明出处:http://www.178linux.com/30038

(0)
上一篇 2016-08-08 16:16
下一篇 2016-08-08 16:16

相关推荐

  • 简述计算机网络中的物理层

          简要说明物理层在网络传输中做了哪些工作解决的问题      物理层是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据比特流可在各种物理媒体上传输。使得…

    Linux干货 2017-05-08
  • shell脚本编程基础(1)

    一.位置变量相关知识     1.位置变量定义:在脚本代码中调用通过命令行传递给脚本的的参数     2.位置变量种类:              &…

    Linux干货 2016-08-15
  • vim的简介与使用

          vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。      vi编辑器支持编辑模式和命令模式,编辑模式下可…

    Linux干货 2016-08-15
  • Linux 基础命令

    时间命令:     date:         date [option].. [+format]:显示      [root@localhost ~]# dateThu Feb 25 14…

    Linux干货 2016-02-28
  • ipvsadm用法

    ipvsadm命令的用法:      1.用于管理Lvs集群服务      2.用于进行RS的增删改      3.查看配置  lvs服务器架设步骤:  1.判断内核是否支持ipvs(看到CONFIG_NETFIFLER_XT_MATCH_IPVS=…

    Linux干货 2017-01-10
  • 使用sudo对用户进行权限管理

    使用sudo对用户进行权限管理 因为root用户权限太大,一般在实际应用的时候 ,为了避免造成错误泛滥和找不到责任人都需要对使用服务器人员进行权限分配,除了系统管理员外,其他人禁止使用root,但可以通过sudo命令,给自己提权。同时通过日志审计进行监控操作,操作如下: 1.禁止普通用户使用su命令到root # usermod -g wheel user0…

    Linux干货 2017-03-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 14:38

    写的很好,排版也很棒,加油,匹配ip地址的不对