面授20期2班-08月4号课堂与课后习题

课堂习题

1、显示/etc/init.d/functions文件中所有的单词及出现的次数

cat /etc/init.d/functions | tr -sc "[:alpha:]" '\n' |sort | uniq -c

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

centos6:ifconfig | head -2 | tail -1 | cut -d: -f 2 | cut -d" " -f1

centos7:ifconfig | head -2 | tail -1 | cut -dt -f2 | cut -d" " -f2

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

[root@shao ~]# df | cut -c 44-46 | sort -nr | head -n2 | tail -n1

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

方法一 cat /etc/passwd | cut -d: -f1,3,7 | sort -nrt : -k 2 |head -n 1

方法二 sort -nrt: -k3 /etc/passwd | head -n1 | cut -d: -f1,3,7

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

 stat /tmp | head -4 | tail -1 | cut -d/ -f1 | cut -d\( -f2

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

netstat -tn | cut -d: -f2 | tr -s " " ":" | cut -d: -f2 | sort | uniq -c

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

方法一 grep -e ^s -e ^S  /proc/meminfo
方法二 grep -i ^s  /proc/meminfo
方法三 grep  ^[sS]  /proc/meminfo

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

grep -v "/bin/bash$" /etc/passwd

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

getent passwd | grep ^"\<rpc\>" | cut -d: -f1,7

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

grep -o "\<[[:digit:]]\{2,3\}\>" /etc/passwd

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

grep -o  "^[[:space:]]\+[^[:space:]].*" /etc/grub2.cf

12、找出"netstat -tan"命令的结果中以'LISTEN'后跟0、1 或多个空白字符结尾的行

netstat -tan | grep "\<LISTEN[[:space:]]*$"

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

 useradd -s /sbin/nologin nologin
 useradd bash
 useradd testbash

方法一 getent passwd | grep "^\(\<.*\>\).*\<\1\>$"

方法二 getent passwd | grep "^\(\<[[:alnum:]]\{1,\}\>\).*\<\1\>$"

14、显示当前系统root或mage用户的UID和默认shell

方法一 grep -E "^(root|mage):" /etc/passwd | cut -d: -f3,7

方法二 grep -e "^root\<" -e "^mage\<" /etc/passwd | cut -d: -f3,7

15、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

grep  -E  "^([[::alpha]_])+\(\).*" /etc/rc.d/init.d/functions

16、使用egrep取出/etc/rc.d/init.d/functions中其基名

echo /etc/rc.d/init.d/functions | egrep -o "f.*$"

17、使用egrep取出上面路径的目录名

echo /etc/rc.d/init.d/functions | egrep -o "^.*/"

18、统计以root身份登录的每个远程主机IP地址的登录次数

last | grep root | egrep -o "[[:digit:]]+.[[:digit:]]+.[[:digit:]]+.[[:digit:]]+" | uniq -c | sort -t" "


课后练习

1、用扩展正则表达式表示IP地址

ifconfig | egrep -o "\<(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\>"

2、用扩展正则表达式表示手机号13 14 17 15  18

egrep -o "\<1[134578][0-9]{9}\>"

3、用扩展正则表达式表示身份证号18

egrep -o "\((1[1-5]) | (2[1-3]) | (3[1-7]) | (4[1-6]) | (5[0-4]) | (6[1-5]) | (71、81\82))([0-9]){4}(19|20)([0-9]){2}((0[1-9]) | (1[0-2]))(0[1-9]|([0-9])|(2[0-9])|(3[0-1]))([0-9]){3}([0-9]|X)\>"

4、用扩展正则表达式表示邮箱

qq邮箱:

egrep -o "\<[1-9][0-9]{4,9}@qq.com\>"

所有邮箱 :

egrep -o "\<([[:alnum:]]+(-|_)*[[:alnum:]]*)\>@([[:alnum:]]\.)+[[:alnum:]]+"

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

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

相关推荐

  • 学习了点命令

    什么是shell 它提供了用户与内核进行交互操作的一种接口shell它接受用户输入的命令并把它送入内核去执行 shell也被称为Linux的命令解释器 shell是一种高级程序设计 语言 查看当前系统使用了那个shell            &nb…

    Linux干货 2017-07-13
  • 了解sed

    本博客分为四个部分:sed介绍、sed用法、sed高级用法(简略带过)、相关例题。通过本文可以大致了解sed命令。深度可以当成是课前预习吧。 1、sed介绍Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中…

    Linux干货 2017-04-25
  • 软链接与硬链接

    软链接 硬链接

    2017-11-18
  • redis主从复制(1)— 慢查询导致复制中断

    redis的异常行为是一件令人头疼的问题。redis提供的错误日志只提供了一些server的运行状态信息,而没有server在故障现场的操作日志,比如执行了什么命令,命令操作对象的数据结构信息。如果redis也有mysql的slow-log,那么很多性能和故障问题也很容易处理。1、redis rdb在redis2.8版本以前,redis主从数据复制在生产上存…

    Linux干货 2016-04-12
  • GDB中应该知道的几个调试方法

    七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。 一、多线程调试 多线程调试可能是问得最多的。…

    Linux干货 2016-07-11