工作中一些常用的shell命令

  • A+
所属分类:linux命令

1.查看访问IP统计前10名:
netstat -an|grep 10.48.114.138:80|grep ESTABLISHED |awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r |head -10

2.查看Apache的并发请求数及其TCP连接状态:
Linux命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key,”/t”,state[key]}’

3.用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i bond1 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’ | sort | uniq -c | sort -nr |head -20

4.压缩包中的文件过滤:
zgrep -a

5.批量替换:
find ./ -type f -exec sed -i ‘s/218.207.208.20:59002/112.5.196.27:12000/g’ {} \;

6.列出大于1M的文件大小:
find . -type f -size +1M -exec ls -lh {} \; | awk ‘{print $5,$9}’

7.批量删除
1) find . -type d -name ‘.svn’ | xargs rm -rf #先(递归)找到当前路径下含有 .svn的文件目录,再经 xargs逐个干掉
2) find . -type d -iname ‘.svn’ -exec rm -rf {} \; #先(递归)找到.当前路径下含有.svn的文件目录,再干掉
-iname filename #同-name ,区别 -i 忽略大小写

8.在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
find logs -type f -mtime +5 -exec -ok rm {} \;

9.查询当天修改过的文件
find ./ -mtime -1 -type f -exec ls -l {} \;

10.强制替换:
\cp -aRp -r -f /home/test /usr/local/test

11.模糊过滤:
grep a…b abc.txt (代表过滤abc.txt中以a开头b结尾的连续的5位字符
grep a*b abc.txt 过滤含有a b的字符

12.打印某段日志前后20行
grep -c 20 “关键字” abc.txt

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: