1、找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写
[root@localhost ~]
SwapCached: 0 kB
SwapTotal: 1572860 kB
SwapFree: 1572860 kB
Shmem: 7688 kB
Slab: 42668 kB
SReclaimable: 20892 kB
SUnreclaim: 21776 kB
[root@localhost ~]
SwapCached: 0 kB
SwapTotal: 1572860 kB
SwapFree: 1572860 kB
Shmem: 7688 kB
Slab: 42668 kB
SReclaimable: 20892 kB
SUnreclaim: 21776 kB
[root@localhost ~]
SwapCached: 0 kB
SwapTotal: 1572860 kB
SwapFree: 1572860 kB
Shmem: 7688 kB
Slab: 42668 kB
SReclaimable: 20892 kB
SUnreclaim: 21776 kB
[root@localhost ~]
SwapCached: 0 kB
SwapTotal: 1572860 kB
SwapFree: 1572860 kB
Shmem: 7688 kB
Slab: 42668 kB
SReclaimable: 20892 kB
SUnreclaim: 21776 kB
[root@localhost ~]
SwapCached: 0 kB
SwapTotal: 1572860 kB
SwapFree: 1572860 kB
Shmem: 7688 kB
Slab: 42668 kB
SReclaimable: 20892 kB
SUnreclaim: 21776 kB
3、找出/etc/init.d/function文件下包含小括号的行
[root@localhost ~]
4、输出指定目录的基名
基名指的是当前所在地方的上一层文件夹
[root@localhost 123]
5、找出网卡信息中包含的数字
[0-9]+ 0-9一个或者多个
[root@localhost 456]
6、找出/etc/passwd下每种解析器的用户个数
比如bash这个解析器的用户有几个
[root@localhost 456]
/bin/sync 1
/bin/bash 6
/sbin/nologin 17
/sbin/halt 1
/sbin/shutdown 1
7、过滤网卡中的ip,用三种方式实现
[root@localhost 456]
127.0.0.1
192.168.15.222
192.168.15.255
172.16.1.100
172.16.15.255
[root@localhost 456]
inet 127.0.0.1/8 scope host lo
inet 192.168.15.222/24 brd 192.168.15.255 scope global eth0
inet 172.16.1.100/20 brd 172.16.15.255 scope global eth1
[root@localhost 456]
8、搜索/etc目录下,所有的.html或.php文件中包含的main函数出现的次数
$后面的内容查出来的路径给前面用
[root@localhost etc]
9、过滤/etc/fstab中注释的行和空行
[root@localhost etc]
/dev/mapper/centos-root / xfs defaults 0 0
UUID=bda5d4f6-f6af-448a-bd08-45997f1288c7 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /mnt xfs defaults 0 0
[root@localhost etc]
10、找出文件中至少有一个空格的行
[root@localhost etc]
/dev/mapper/centos-root / xfs defaults 0 0
UUID=bda5d4f6-f6af-448a-bd08-45997f1288c7 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /mnt xfs defaults 0 0
11、过滤文件中以#开头的行,后面至少有一个空格
[root@localhost etc]
12、查询出/etc目录中包含多少个root
-R递归查询 [root@localhost etc]
13、查询出所有的qq邮箱
[root@localhost tmp]
12341213123@qq.com
14、查询系统日志(/var/log/message)中所有的error
[root@localhost tmp]
Oct 11 09:14:25 localhost kernel: BERT: Boot Error Record Table support is disabled. Enable it by using bert_enable as kernel parameter.
16、删除一个文件中的所有数字
[root@localhost tmp]
我没得数字
[root@localhost tmp]
I am Poe,my qq is
adadw
我有数字
我没得数字
qwe
17、显示奇数行
[root@localhost tmp]
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
18、删除passwd文件中以bin开头的行到nobody开头的行
[root@localhost tmp]
20、每隔5行打印一个空格行
NR%5不等于0时 true 等于0 为false 加俩换行符是因为有一个默认的\n
[root@localhost tmp]
21、不显示指定字符的行
[root@localhost tmp]
22、将文件中1到5行中aaa替换成AAA
[root@localhost tmp]
q
AAAw
erAAA
r
q
we
:wq
aaa
aaa
23、显示用户id为奇数的行
[root@localhost tmp]
25、统计nginx日志中访问量(ip唯独计算)
查找ip 然后-c查看多少行,他只要访问量 一行代表一个访问量
[root@localhost tmp]
662
26、统计访问nginx前10的ip
[root@localhost tmp]
493 106.12.223.189
24 106.12.223.203
24 106.12.223.200
22 106.12.223.202
19 106.12.223.204
17 198.98.60.202
13 45.146.164.110
13 106.12.223.201
9 134.122.56.69
6 209.141.56.41
sort | 参数 | 作用 (默认按照第一个字符排序) |
从小到大 |
-n |
按照数值大小进行排序;从小到大 |
从大到小 |
-r |
和上面的相反,从大到小排序,也叫倒序,如果是数值排序记得加上-n 因为默认按照第一个字符排序 |
uniq:只能处理相邻的重复,就是挨着的两个 | 参数 | 作用 |
前面显示重复次数,后面显示内容 |
-c |
打印出重复次数 |
head:从头开始读行默认十行 | 参数 | 作用 |
读取行内容 |
-n |
读取多少行 |
27、统计nginx日志中的访问人数
sort 排序 uniq筛选
[root@localhost tmp]
之前剩下的awk里面的while循环
while (判断条件){}
案例一把etc/passwd每一行都重复打印三遍
[root@localhost tmp]
先声明i=1, while 如果i<=3 print 这一行内容 然后i++
;
案例二 要求把/etc/passwd种第十行的每一列都打印出来
[root@localhost tmp]
operator:x:11:0:operator:/root:/sbin/nologin
operator
x
11
0
operator
/root
先加个条件 NR==10 选定了第十行, 定义i=0 ,while i<NF最后一个字段 ,输出$i ;i++ i最开始0 然后1,然后2,然后一直到等于NF,不满足条件,退出