Linux学习练习及作业&day07-正则表达式&文本处理工具

第一部分、使用基本的文本处理工具(非grep)练习以下5题。

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

[root@localhost ~]# ifconfig |head -2 |tail -1
        inet 172.18.18.204  netmask 255.255.255.0  broadcast 172.18.18.255
[root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s " " ":"
:inet:172.18.18.204:netmask:255.255.255.0:broadcast:172.18.18.255
[root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s " " ":"|cut -d: -f3
172.18.18.204

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

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       100G  4.0G   97G   4% /
devtmpfs        899M     0  899M   0% /dev
tmpfs           913M   88K  913M   1% /dev/shm
tmpfs           913M  9.0M  904M   1% /run
tmpfs           913M     0  913M   0% /sys/fs/cgroup
/dev/sda5        20G   33M   20G   1% /testdir
/dev/sda1       197M  139M   59M  71% /boot
tmpfs           183M  8.0K  183M   1% /run/user/0
/dev/sr0        7.3G  7.3G     0 100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]# df -h |tr -s " " ":"
Filesystem:Size:Used:Avail:Use%:Mounted:on
/dev/sda2:100G:4.0G:97G:4%:/
devtmpfs:899M:0:899M:0%:/dev
tmpfs:913M:88K:913M:1%:/dev/shm
tmpfs:913M:9.0M:904M:1%:/run
tmpfs:913M:0:913M:0%:/sys/fs/cgroup
/dev/sda5:20G:33M:20G:1%:/testdir
/dev/sda1:197M:139M:59M:71%:/boot
tmpfs:183M:8.0K:183M:1%:/run/user/0
/dev/sr0:7.3G:7.3G:0:100%:/run/media/root/CentOS:7:x86_64
[root@localhost ~]# df -h |tr -s " " ":"|cut -d: -f5
Use%
4%
0%
1%
1%
0%
1%
71%
1%
100%
[root@localhost ~]# df -h |tr -s " " ":"|cut -d: -f5|sort -nr
100%
71%
4%
1%
1%
1%
1%
Use%
0%
0%
[root@localhost ~]# df -h |tr -s " " ":"|cut -d: -f5|sort -nr |head -1
100%

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

[root@localhost ~]# getent passwd |cut -d: -f1,3,7
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
sync:5:/bin/sync
shutdown:6:/sbin/shutdown
halt:7:/sbin/halt
mail:8:/sbin/nologin
operator:11:/sbin/nologin
games:12:/sbin/nologin
ftp:14:/sbin/nologin
nobody:99:/sbin/nologin
avahi-autoipd:170:/sbin/nologin
systemd-bus-proxy:999:/sbin/nologin
systemd-network:998:/sbin/nologin
dbus:81:/sbin/nologin
polkitd:997:/sbin/nologin
colord:996:/sbin/nologin
abrt:173:/sbin/nologin
tss:59:/sbin/nologin
unbound:995:/sbin/nologin
usbmuxd:113:/sbin/nologin
saslauth:994:/sbin/nologin
libstoragemgmt:993:/sbin/nologin
geoclue:992:/sbin/nologin
rpc:32:/sbin/nologin
setroubleshoot:991:/sbin/nologin
rtkit:172:/sbin/nologin
pulse:171:/sbin/nologin
gdm:42:/sbin/nologin
rpcuser:29:/sbin/nologin
nfsnobody:65534:/sbin/nologin
radvd:75:/sbin/nologin
qemu:107:/sbin/nologin
chrony:990:/sbin/nologin
mysql:27:/sbin/nologin
gnome-initial-setup:989:/sbin/nologin
avahi:70:/sbin/nologin
postfix:89:/sbin/nologin
sshd:74:/sbin/nologin
ntp:38:/sbin/nologin
tcpdump:72:/sbin/nologin
andy:1000:/bin/bash
laowang:1001:/bin/bash
[root@localhost ~]# getent passwd |cut -d: -f1,3,7 |sort -t: -k2 -n
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
sync:5:/bin/sync
shutdown:6:/sbin/shutdown
halt:7:/sbin/halt
mail:8:/sbin/nologin
operator:11:/sbin/nologin
games:12:/sbin/nologin
ftp:14:/sbin/nologin
mysql:27:/sbin/nologin
rpcuser:29:/sbin/nologin
rpc:32:/sbin/nologin
ntp:38:/sbin/nologin
gdm:42:/sbin/nologin
tss:59:/sbin/nologin
avahi:70:/sbin/nologin
tcpdump:72:/sbin/nologin
sshd:74:/sbin/nologin
radvd:75:/sbin/nologin
dbus:81:/sbin/nologin
postfix:89:/sbin/nologin
nobody:99:/sbin/nologin
qemu:107:/sbin/nologin
usbmuxd:113:/sbin/nologin
avahi-autoipd:170:/sbin/nologin
pulse:171:/sbin/nologin
rtkit:172:/sbin/nologin
abrt:173:/sbin/nologin
gnome-initial-setup:989:/sbin/nologin
chrony:990:/sbin/nologin
setroubleshoot:991:/sbin/nologin
geoclue:992:/sbin/nologin
libstoragemgmt:993:/sbin/nologin
saslauth:994:/sbin/nologin
unbound:995:/sbin/nologin
colord:996:/sbin/nologin
polkitd:997:/sbin/nologin
systemd-network:998:/sbin/nologin
systemd-bus-proxy:999:/sbin/nologin
andy:1000:/bin/bash
laowang:1001:/bin/bash
nfsnobody:65534:/sbin/nologin
[root@localhost ~]# getent passwd |cut -d: -f1,3,7 |sort -t: -k2 -n|tail -1
nfsnobody:65534:/sbin/nologin

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

[root@localhost ~]# stat /tmp
  File: ‘/tmp’
  Size: 4096      Blocks: 8          IO Block: 4096   directory
Device: 802h/2050dInode: 133         Links: 16
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:tmp_t:s0
Access: 2016-08-06 03:28:34.193156514 -0400
Modify: 2016-08-07 22:42:52.743218461 -0400
Change: 2016-08-07 22:42:52.743218461 -0400
 Birth: -
[root@localhost ~]# stat /tmp|head -4 |tail -1
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
[root@localhost ~]# stat /tmp|head -4 |tail -1|cut -d "/" -f1
Access: (1777
[root@localhost ~]# stat /tmp|head -4 |tail -1|cut -d "/" -f1|cut -d"(" -f2
1777

[root@localhost ~]# netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 172.18.18.204:22        172.18.18.205:60913     TIME_WAIT  
tcp        0      0 172.18.18.204:22        172.18.18.205:60912     ESTABLISHED
tcp        0      0 172.18.18.204:22        172.18.18.205:60911     ESTABLISHED
tcp        0      0 172.18.18.204:22        172.18.18.205:60916     ESTABLISHED
tcp        0      0 172.18.18.204:22        172.18.18.205:60920     ESTABLISHED
tcp        0     52 172.18.18.204:22        172.18.18.205:55889     ESTABLISHED
tcp        0      0 172.18.18.204:22        172.18.18.205:60918     ESTABLISHED
[root@localhost ~]# netstat -nt |tr -s " " ":"
Active:Internet:connections:(w/o:servers)
Proto:Recv-Q:Send-Q:Local:Address:Foreign:Address:State:
tcp:0:0:172.18.18.204:22:172.18.18.205:60912:ESTABLISHED
tcp:0:0:172.18.18.204:22:172.18.18.205:60911:ESTABLISHED
tcp:0:0:172.18.18.204:22:172.18.18.205:60916:ESTABLISHED
tcp:0:0:172.18.18.204:22:172.18.18.205:60920:ESTABLISHED
tcp:0:52:172.18.18.204:22:172.18.18.205:55889:ESTABLISHED
tcp:0:0:172.18.18.204:22:172.18.18.205:60918:ESTABLISHED
[root@localhost ~]# netstat -nt |tr -s " " ":"|cut -d: -f6
Foreign
172.18.18.205
172.18.18.205
172.18.18.205
172.18.18.205
172.18.18.205
172.18.18.205
[root@localhost ~]# netstat -nt |tr -s " " ":"|cut -d: -f6|uniq -c
      1 
      1 Foreign
      6 172.18.18.205

第二部分、使用文本处理工具(grep)练习以下7题。

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

19.png

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

20.png

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

21.png

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

22.png

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

23.png

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

24.png

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

25.png

第三部分、使用扩展正则表达式(egrep)练习以下7题。

1、 显示三个用户root、 mage、 wang的UID和默认shell

26.png

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

27.png

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

28.png

4、使用egrep取出/etc/rc.d/init.d/functions的目录名

36.png

35.png

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

29.png30.png31.png32.png33.png6、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255

    0-9:[0-9]

    10-99:[1-9][0-9]

    100-199:1[0-9]{2}

    200-249:2[0-4][0-9]

    250-255:25[0-5]

7、显示ifconfig命令结果中所有IPv4地址

34.png

第四部分、课后作业

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

37.png

38.png

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

40.png

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

35.png

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

            

                1:     [1-9]———————————————第一位不能为0开头

                2-6:   [0-9]{5}

                78:    (19|20|21)————————————- 出生年份前两位

                9-10   [0-9]{2}—————————————-出生年份后两位      

                11-12  ((0[1-9])|11|12)——————————出生月份

                13-14  ((0[1-9])|([12][0-9])|(3[0-1]))————-出生日

                15-17  [0-9]{3}

                18     [0-9X]——————————————-最后一位可能为x

                egrep "\<[1-9][0-9]{5}(19|20|21)[0-9]{2}((0[1-9])|(10|11|12))((0[1-9])|([12][0-9])|(3[0-1]))[0-9]{3}[0-9Xx]\>"

   

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

       第一位 1

                   第二位 3、4、5、7、8

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

    6、正则表达式表示邮箱

        egrep "^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$"

                   或者 egrep -o  "\<[[:alnum:]_\-]+\.?[[:alnum:]]+@([[:alnum:]_\-]+\.)+(com|cn|edu|org|net|gov)\.?\>"


     7、正则表达式表示QQ号

        egrep "\<[1-9][0-9]{4,11}\>"

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

(0)
上一篇 2016-08-08 20:10
下一篇 2016-08-08 20:19

相关推荐

  • N26 – 第三周作业

    1、列出当前系统上所有已登录的用户的用户名,同一用户登录多次只显示一次     ~]# who -u |cut -d ' ' -f1|uniq -u 2、最后登录到当前系统的用户的相关信息     ~]#id $(last | h…

    Linux干货 2017-01-03
  • shell脚本2

    使用read命令来接受输入 使用read来把输入值分配给一个或多个shell变量 read后面跟变量,回车输入内容,就可以把输入的内容赋给变量 -p指定要显示的提示 -s 静默输入,一般用于密码 输入的内容不显示 -n N 指定输入的字符长度N 当输入的内容达到了5个字符会直接结束输入 -d‘字符’ 输入结束符 把!作为了结束符,在输入内容时,当输入!会直接…

    2017-08-11
  • 实战演练su命令与sudo服务

    su和su- 切换方式 实例: sudo 提权 sudo的特色功能 sudo命令的常用参数 注意 案例1——允许zhanghe用户执行所有命令: 案例2——仅允许linuxprobe用户以root用户身份执行cat命令。 案例3——允许linuxprobe用户以任意身份执行命令,且每次都不需要密码验证。 su命令与sudo服务 在工作生产环境中不要去使用ro…

    Linux干货 2016-09-05
  • 1. 什么是Linux

        如果以前从没有接触过linux, 你可能会对为什么会存在这么多不同的linux发行版有些困惑. 在看linux软件包时, 你肯定听过发行版, LiveCD和GNU之类的等等术语, 也肯定摸不着头脑. 第一次接触linux,想理解会有些困难.  我们就先了解下linux系统内部结构的一些信息. &nbs…

    Linux干货 2016-10-26
  • 计算机简介

    计算机的简介 电子计算机(英语:computer),亦称电脑,是一种利用「电子学」原理,根据一系列指令对数据进行处理的工具计算机种类繁多,但实际来看,计算机总体上是处理信息的工具。计算机在组成上形式不一,早期计算机的体积足有一间房屋的大小,而今天某些嵌入式计算机可能比一副「扑克牌」还小。当然,即使在今天依然有大量体积庞大的巨型计算机为特别的[科学]计算或面向…

    Linux干货 2016-10-28
  • N26-第二周作业-邢岩(1)

     马哥门徒-N26-邢岩   度过了一个愉快的春节,又到了上班的时候了!我的Linux基础学习也进行到了疯狂记命令的阶段,痛并快乐着!那就让我来说一下Linux上的文件管理类命令都有哪些吧。   Linux的文件相关命令还是蛮多的,我不妨简单的总结一下,归结为6类常用的命令: 1、目录切换类命令   pwd命令:显示工…

    Linux干货 2017-02-10