面授20-1班 0805课间练习与课后作业

课间练习


第一阶段

新学的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch

1 、找出ifconfig 命令结果中本机的所有IPv4 地址

[root@IP70-CentOS7 ~]# >>ifconfig | tr -cs '0-9.' '\n' | sort -t . -k3 | tail -8

1470401824465311.png

2 、查出分区空间使用率的最大百分比值

[root@IP70-CentOS7 ~]# >>df | tr -s ' ' | cut -d' ' -f5 | tr -dc '0-9\n' | sort -n | tail -1

1470402179214486.png

3 、查出用户UID 最大值的用户名、UID 及shell 类型

[root@IP70-CentOS7 ~]# >>sort -t: -k3n /etc/passwd |tail -1 | cut -d: -f1,3,7

1470402598686145.png

4 、查出/tmp 的权限,以数字方式显示

stat /tmp | head -4 | tail -1 | tr -cs '0-9' '\n' | tail -3 | head -1

1470402788521387.png

5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大到小排序

[root@IP70-CentOS7 ~]# >>netstat -nt | tr -s ' ' ':' | cut -d: -f6 | tr -d '[:alpha:]' | uniq -c | sort -r

1470403837135168.png

第二阶段

grep 正则表达式

1 、显示/proc/meminfo 文件中以大小s 开头的行;( 要求:使用两种方式)

[root@IP70-CentOS7 ~]# >>grep -e ^s -e ^S /proc/meminfo
[root@IP70-CentOS7 ~]# >>grep -i ^s /proc/meminfo
[root@IP70-CentOS7 ~]# >>grep -i ^[sS] /proc/meminfo

1470404355822702.png

2 、显示/etc/passwd 文件中不以/bin/bash 结尾的行

[root@IP70-CentOS7 ~]# >>grep -v '/bin/bash$' /etc/passwd

1470404477267048.png

3 、显示用户rpc 默认的shell 程序

[root@IP70-CentOS7 ~]# >>grep '^rpc\b' /etc/passwd | cut -d: -f7

1470439923490056.png

4 、找出/etc/passwd 中的两位或三位数

[root@IP70-CentOS7 ~]# >>egrep -o '\b[0-9]{2,3}\b' /etc/passwd

1470440091416289.png

5 、显示/etc/grub2.cfg 文件中,至少以一个空白字符开头的且后面存非空白字符的行

[root@IP70-CentOS7 ~]# >>egrep '^[[:space:]]+[^[:space:]]+$' /etc/grub2.cfg

1470440614495907.png

6、 、 找出“netstat -tan” 命令 的结果 中以 以‘LISTEN’ 后跟任意多个空白字符结尾的行

[root@IP70-CentOS7 ~]# >>netstat -tan | egrep '\bLISTEN[[:space:]]*$'

1470440968501105.png

7 、添加用户bash 、testbash 、basher 以及nologin( 其shell为 为/sbin/nologin),
而后找出/etc/passwd 文件中用户名和shell名 同名的行

[root@IP70-CentOS7 ~]# >>useradd bash
[root@IP70-CentOS7 ~]# >>useradd testbash
[root@IP70-CentOS7 ~]# >>useradd basher
[root@IP70-CentOS7 ~]# >>useradd nologin -s /sbin/nologin
[root@IP70-CentOS7 ~]# >>egrep '^([^:]*):.*/\1$' /etc/passwd

1470442631965909.png

 

课后作业


 

4、取本机ip地址

思考:本机ip地址包括ipv4和ipv6,在ifconfig输出显示是跟着inet和inet6后面字段,还要滤掉127.0.0.1和::1的两个回环地址

[root@IP70-CentOS7 ~]# >>ifconfig | egrep 'inet6?\b' | tr -s ' ' | cut -d' ' -f3 | fgrep -v -e127.0.0 -e ::1

1470450808666102.png

5、取各分区利用率的数值

思考:关键字段/dev/sd过滤df输出结果,然后替换重复空格,直接用cut可以提取

[root@IP70-CentOS7 ~]# >>df | grep '/dev/sd' | tr -s ' ' | cut -d' ' -f5 | tr -d %

Image 20160806090805.png

6、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示

思考:tr滤掉所有非字母的字符,sort排序后进行uniq词频统计,再次sort从高到低排序

[root@IP70-CentOS7 ~]# >>cat /etc/init.d/functions | tr -cs '[:alpha:]' '\n' | sort | uniq -c | sort -nr

1470446235435204.png

7、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/functions/"  取目录名

方法一:先用grep匹配去掉最后的/,再将输出进行二次匹配,去掉最后的单词。

[root@IP70-CentOS7 ~]# >>\cat testdir | grep -o '^/.*[^/]' | grep -o '^/.*/'

1470542342468329.png

方法二:文件的基名是个单词,/etc/rc.d/init.d/functions/,按位置排列/为12345

    4号5号的区别在于:4号处于单词(基名)的前面,而5号后面是没有单词的(即不在某单词的前面),所以我们可以利用单词锚定,确定匹配/:

[root@IP70-CentOS7 tmp]# >>\cat testdir | grep -o '^.*/\b'
[root@IP70-CentOS7 tmp]# >>\cat testdir | grep -o '^.*/\<'

1470552329617510.png

8、正则表达式表示身份证号

思考: 身份证号为18位,

    前6位地区编号(非0开头):

        [1-9][0-9]{5}

    后8位出生年月日

        本例取1800年-2015年

[root@IP70-CentOS7 ~]# >>\cat year | egrep -w '(1[89][0-9]{2})|(200[0-9]|201[0-5])'

            1470470835674775.png

        月份01-12,日期01-31,其中01、03、05、07、08、10、12月有31天,04、06、09、11月30天,02月28天

[root@IP70-CentOS7 ~]# >>\cat mmdd | egrep '((0[13578]|1[02])([0-2][0-9]|3[01]))|((0[469]|1[02])([0-2][0-9]|30]))|02[012][0-9]'

            1470472046215143.png          

    后四位末位有数字或X。

[root@IP70-CentOS7 ~]# >>\cat mmdd | egrep -w '[0-9]{3}[0-9x]'

            1470472451553720.png        

综合上述:

[root@IP70-CentOS7 ~]# >>\cat file | egrep -w '[1-9][0-9]{5}((1[89][0-9]{2})|(200[0-9]|201[0-5]))(((0[13578]|1[02])([0-2][0-9]|3[01]))|((0[469]|1[02])([0-2][0-9]|30))|02[012][0-9])[0-9]{3}[0-9x]'

1470481899738861.png

9、正则表达式表示手机号

思考:手机号码11位数字,网上搜索中国手机号起始3位如下,

中国移动
GSM 134 135 136 137 138 139 150 151 152 157 158 159
3G(TD-SCDMA) 187 188
中国联通
GSM 130 131 132 155 156
3G(WCDMA) 185 186
中国电信
CDMA 133 153
3G(CDMA2000) 180 189

即有13[0-9]、15[0-35-9]、18[05-9],前三位确定,再有8位任意数字就可以了(注:本例只适用于中国地区以上列举手机号段的匹配)

[root@IP70-CentOS7 ~]# >>\cat tel1 | egrep -w '(86)?((13[0-9])|(15[0-35-9])|(18[05-9]))[0-9]{8}'

1470454834820699.png

10、正则表达式表示邮箱

思考:邮箱格式为 用户名@网站名.网站后缀

用户名:

纯字母

纯数字

数字、字母(可以数字开头或字母开头)

数字、字母、“_”或“-”(符号"_"和"-"不能做词首词尾)

即:

    \b[[:alnum:]]+[0-9a-zA-Z-_]*[[:alnum:]]

网站:

数字字母.字母

[[:alnum:]]+\.[[:alpha:]]+

[root@IP70-CentOS7 ~]# >>\cat tel1 | egrep '^[[:alnum:]]+[-_[:alnum:]]*[[:alnum:]]\@[[:alnum:]]+\.[[:alpha:]]+'

1470466065711418.png

11、正则表达式表示QQ号

思考:现在 的QQ是5-11位不以0开始的纯数字

[root@IP70-CentOS7 ~]# >>\cat testqq | egrep -w '[1-9][0-9]{4,10}'

Image 20160806153600.png

原创文章,作者:昭其,如若转载,请注明出处:http://www.178linux.com/29793

(0)
昭其昭其
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • linux文件系统及文件操作

    1、Linux文件系统:    文件和目录被组织成一个单根倒置树结构,从根目录”/”开始。    文件系统分层结构LSB (Linux Standard Base)如下: 2、主要目录: /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader) /etc:配置文件 /home:用户的…

    2017-07-23
  • CentOS系统详解(启动流程、kickstart)&bash脚本编程之while/函数用法

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区; (1) 为硬盘新建两个主分区;并为其安装grub; (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs; (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件…

    Linux干货 2016-11-28
  • 马哥教育网络班N22期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享三层交换机:具有路由功能的二…

    Linux干货 2016-10-19
  • M20-1 8月3号作业

    1、三种权限rwx对文件和目录的不同意义 2、umask和acl mask 的区别和联系 3、三种特殊权限的应用场景和作用 4、设置user1,使之新建文件权限为rw——- 5、设置/testdir/f1的权限,使user1用户不可以读写执行,g1组可以读写 /testdir/dir的权限,使新建文件自动具有acl权限:user1:r…

    Linux干货 2016-08-05
  • tomcat基础进阶

                        tomcat基础进阶 前言 Tomcat Architecture Tomcat Installation Tomcat…

    Linux干货 2016-04-22
  • 堡垒机-麒麟开源堡垒机苹果 Mac支持版本发布

      近日,麒麟开源堡垒机团队开发测试了支持Mac OS苹果操作系统的Web插件,苹果系统用户可以直接和Windows用户一样,登录到Web平台,使用点击的方式调动运维工具并且登录到目标系统进行操作运维。 Mac OS插件支持ssh、telnet、rdp、vnc、x11、sftp、ftp、应用发布等所有协议。   注:麒…

    Linux干货 2016-05-19