shell常用正则命令

统计当前文件下的文件个数

ls -lR|grep "^-"|wc -l 

统计指定文件的文件个数

[root@fengyu-dengbao fy-core-front-tianjin]# ls -lR upfile |grep "^-"|wc -l
74765

统计dump文件中处于不同状态的线程数量

[root@izwz94au85lous016gmqa2z WCCY]# jstack 31229 >/home/my.log
[root@izwz94au85lous016gmqa2z WCCY]# grep java.lang.Thread.State /home/my.log| awk '{print $2$3$4$5}' | sort | uniq -c 
     61 RUNNABLE
      4 TIMED_WAITING(onobjectmonitor)
    325 TIMED_WAITING(parking)
     16 TIMED_WAITING(sleeping)
      5 WAITING(onobjectmonitor)
     36 WAITING(parking)
[root@izwz94au85lous016gmqa2z WCCY]# 

取出现过的IP地址

[root@localhost elasticsearch-7.5.0]# ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.214  netmask 255.255.255.255  broadcast 192.168.8.214
        inet6 fe80::533d:995f:856f:b004  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::54e4:5e44:c23a:3bd  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::90ad:40ba:b609:64d7  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:a2:3c:6a  txqueuelen 1000  (Ethernet)
        RX packets 11020687  bytes 6553459973 (6.1 GiB)
        RX errors 1  dropped 249  overruns 0  frame 0
        TX packets 8489335  bytes 2522169977 (2.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 16988889  bytes 15473701741 (14.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16988889  bytes 15473701741 (14.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost jm]# ifconfig ens192 |egrep -o "(([0-9]|?[0-9]|1[0-9][0-9]|2[0-9][0-9])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])"
192.168.8.214
255.255.255.255
192.168.8.214
[root@localhost jm]# 
sort :对IP部分进行排序。
uniq -c:打印每一重复行出现的次数。(并去掉重复行)
sort -n -r:按照重复行出现的次序倒序排列。
head -n 1:取排在第一位的ip地址

根据端口查询进程ID


 1. netstat -apn|grep 6233 |awk '{print $7}' |cut  -d/ -f1
 2. lsof -i:6233 |awk '{print $2}' | tail -n +2

> awk '{ print $7}':取数据的第7域(第7列)
> cut 
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
> tail -n +2 跳过第一行

当前WEB服务器中联接次数最多的ip地址

netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr

查看日志中访问次数最多的前10个IP

cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 | less

查看日志中出现100次以上的IP

cat access_log |cut -d ' ' -f 1 | sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr | less

查看最近访问量最高的文件

cat access_log | tail -10000 | awk '{print $7}' | sort | uniq -c | sort -nr | less

查看日志中访问超过100次的页面

cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less

统计某url,一天的访问次数

cat access_log | grep '12/Aug/2009' | grep '/images/index/e1.gif' | wc | awk '{print $1}'

前五天的访问次数最多的网页

cat access_log | awk '{print $7}' | uniq -c | sort -n -r | head -20

从日志里查看该ip在干嘛

cat access_log | grep 218.66.36.119 | awk '{print $1"\t"$7}' | sort | uniq -c | sort -nr | less

列出传输时间超过 30 秒的文件

cat access_log | awk '($NF > 30){print $7}' | sort -n | uniq -c | sort -nr | head -20

列出最最耗时的页面(超过60秒的)

cat access_log | awk '($NF > 60 && $7~/\.php/){print $7}' | sort -n | uniq -c | sort -nr | head -100

查看字符在文中出现的次数

grep -o abc filename|wc -l

如果是多个字符串出现次数,可使用:

grep -o ‘abc1\|abc2'  filename|wc -l  #直接用\| 链接起来即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abclzy2013

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值