文本处理练习题

文本处理练习:

 

1.找出本机ip地址

  [root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3

  10.1.252.221

 

2.查看本机分区最大的利用率

  [root@localhost ~]# df |tr '%' ' ' |tr -s ' ' ':' |cut -d: -f5 |tr '[:alpha:]' ' ' |sort |tail -1

  29

 

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

  [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 |head -4 |tail -1 |tr -s ' ' ':' |cut -d: -f2 |tr -cd '[:digit:]'

  1777

 

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

  [root@localhost ~]# netstat -nt |grep 'tcp' |tr -s ' ' ':' |cut -d: -f4 |uniq -c

      5 10.1.252.221

 

 

 

正则表达式练习:

 

1.显示/proc/meminfo文件中以大小写s开头的行

 

[root@localhost home]# grep -i '^s' /proc/meminfo

SwapCached:            0 kB

SwapTotal:       2098172 kB

SwapFree:        2098172 kB

Shmem:              6992 kB

Slab:              70944 kB

SReclaimable:      41568 kB

SUnreclaim:        29376 kB

 

[root@localhost home]# grep '^[Ss]' /proc/meminfo

SwapCached:            0 kB

SwapTotal:       2098172 kB

SwapFree:        2098172 kB

Shmem:              6992 kB

Slab:              70944 kB

SReclaimable:      41568 kB

SUnreclaim:        29376 kB

 

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

 

[root@localhost ~]# grep -v '.*/bin/bash$' /etc/passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

……

 

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

 

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

/sbin/nologin

 

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

 

[root@localhost ~]# grep -w '[[:digit:]]\{2,3\}' /etc/passwd

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

……

 

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

 

[root@localhost ~]# grep '^[[:space:]]\+.*[^[:space:]][^[:space:]]*' /etc/grub2.cfg

  load_env

   set default="${next_entry}"

   set next_entry=

   save_env next_entry

   set boot_once=true

   set default="${saved_entry}"

  menuentry_id_option="–id"

  menuentry_id_option=""

 

 

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

 

[root@localhost ~]# netstat -tan |grep '.*LISTEN[[:space:]]*$'

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 127.0.0.1:6010          0.0.0.0:*               LISTEN

 

 

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

 

[root@localhost ~]# getent passwd |grep '^\<\(.*\)\>.*\b\1\b$'

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:1001:1001::/home/bash:/bin/bash

nologin:x:1004:1004::/home/nologin:/sbin/nologin

 

扩展正则表达式练习:

 

1、显示当前系统root magewang用户的UID和默认shell

 

[root@localhost ~]# getent passwd |grep -E '^\<(root|mage|wang)\>' |cut -d: -f3,7

0:/bin/bash

1005:/bin/bash

1006:/bin/bash

 

2、找出/etc/rc.d/init.d/functions文件中行首为某单词(

括下划线)后面跟一个小括号的行

 

[root@localhost ~]# grep -E '^(_|[[:alpha:]])+\(' /etc/init.d/functions

checkpid() {

__pids_var_run() {

__pids_pidof() {

daemon() {

killproc() {

pidfileofproc() {

pidofproc() {

status() {

 

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

 

[root@localhost ~]# echo '/etc/rc.d/init.d/functions' |egrep -o '[^/]+/?$'

functions

 

 4、使用egrep取出上面路径的目录名(待确定)

 

[root@localhost ~]# echo '/etc/rc.d/init.d/functions' |egrep -o '(/.*/)'

/etc/rc.d/init.d/

 

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

 

[root@localhost ~]# last |egrep -o '^root\>.*([[:digit:]]\.)[[:digit:]]+' |tr -s ' ' |cut -d" " -f1,3 |sort |uniq -c

     15 root 10.1.250.107

      1 root 192.168.1.104

 

6、利用扩展正则表达式分别表示0-9 10-99 100-199200-249 250-255

 

[0-9]

[1-9][0-9]

1[0-9]{2}

2[0-4][4-9]

25[0-5]

 

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

 

[root@localhost ~]# ifconfig |egrep -o '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'

10.1.252.221

255.255.0.0

10.1.255.255

127.0.0.1

255.0.0.0

 

 

 

 

 

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

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

相关推荐

  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;        (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [ro…

    2017-04-05
  • block(data block,directory block)、inode、块位图、inode位图和super block概念详解

    一.基本概念:      1.block:文件系统中存储数据的最小单元,ext3文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block      2.inode:又称“索引节点”,每一个inode对应一个文件或目录,记录了…

    Linux干货 2016-03-04
  • lvs——高可用集群

    技术简介: LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性 集群采用…

    Linux干货 2016-10-26
  • N21_第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -a /etc/skel/ /home/user1/ && chmod -R 7000 /home/user…

    Linux干货 2016-08-02
  • 马哥教育网络班22期+第1周课程练习

    1、描述计算机的组成及其功能 CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory) Input:下指令,提供数据等 Output:输出数据加工的结果 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 Debian系列         ubuntu &n…

    Linux干货 2016-08-15
  • 马哥教育网络班20期第1周课程练习

    答: 1、 ①控制器:是计算机的中枢神经,协调计算机各部分工作及内存与外设的访问等 ②运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 ③储存器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 ④IO:输入设备是将数据或控制命令等信息输入到计算机。输出设备把机算机的各种数据符号及文字或各种控制信号等…

    Linux干货 2016-06-23