首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Shell平时不骚,骚起来的时候就怕你有些顶不住

其实已经有1年多差不多2年时间没有写过shell脚本了,记得上一个shell脚本,属于比较长而且涉及多个服务的一键部署脚本。其中包含自动部署Nginx、MariaDB、IPSec、pptpd、uwsgi等服务,用于运行一个django项目由很多基础命令组合而成的笨shell脚本。

这些天更新 django-idcops这个项目有些疲累了,再加上一些工作需要重新复习了一下Linux服务器的几个命令(而后不小心发现了《sed与awk》这本书竟然好贵)。以下一些操作都是比较碎片化的,主要是为了进一步理解和加深记忆而写。

1、循环中打印出循环的次数:

index=0;for i in $(ls .); do let index+=1;echo $index: $i; done

2、awk 按列数据筛选特定行:

netstat -atn|awk '$6 == "LISTEN" && $4 ~/80|22/ ||NR==2 '

上面通过awk命令筛选本机LISTEN的80端口或22端口以及第2行信息一并打印出来。

3、awk 简单求和、除法等算术计算:

awk 'NF >= 17 && $13 ~/Minimal/ENDEND' download.log

上面为download.log日志格式,上面指令的意思是:

从download.log日志中筛选并打印由空格分隔,列数数量大于等于17列(文件size[字节]),并且第13列(下载的文件名)中包含"Minimal"字符串的所有匹配到的行,并在最后计算出所有下载的 asize(字节)与 atime (时间秒)的比率。

4、awk配合sort或uniq指令统计nginx访问日志access.log前十IP地址以及各个IP地址访问次数:

awk 'END}' access.log|sort -rnk 1|head -10

5、grep配合sed命令修改所有包含某字符串的所有指定文件,并在原文件中直接执行替换操作:

sed -i "s/

暂时就复习了这么多。awk配合sed真的是很强大,但是sed连入门的操作都不会

他没什么才华只是在ctrl+c ctrl+v

还请大家关注支持一下作者

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190110G1FT9P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券