linux 日常中会用到的命令(持续更新)

Posted 我的开发之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 日常中会用到的命令(持续更新)相关的知识,希望对你有一定的参考价值。

1. grep

  比如,我要查看www目录下所有包含   “聊天室”  的文件

grep -rn "聊天室" *

  

  比如我要把  www  目录下所有文件中的    聊天室   替换为   哈哈哈

grep -rl 聊天室 ./ | xargs sed -i "s/聊天室/哈哈哈/g"

  结果我就不贴了

 2. vim文本内容替换

  命令::s/from/to/g  (将当前行中所有from替换成to)   , 加上c,如::s/from/to/gc   (将当前行中所有from替换成to,但每次替换前都会询问用户确认此操作)

 

3.awk  (一般用来做统计)

  

场景:awk统计日志中相同IP的访问次数
基本结构:
awk \'BEGIN{ print "start" } pattern{ commands } END{ print "end" }\' file
日志格式: 180.153.114.199 - - [03/Jul/2013:14:44:43 +0800] GET /wp-login.php?redirect_to=http%3A%2F%2Fdemo.catjia.com%2Fwp-admin%2Fplugin-install.php%3Ftab%3Dsearch%26s%3DVasiliki%26plugin-search-input%3D%25E6%2590%259C%25E7%25B4%25A2%25E6%258F%2592%25E4%25BB%25B6&reauth=1 HTTP/1.1 200 2355 - Mozilla/4.0 - 实现命令:awk \'{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}\' log_url(日志路径)

命令:awk \'{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}\' log_url(日志路径)
结果实例:
  2 101.226.33.200
  2 101.226.66.175

排序:awk \'{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}\' log_url(日志路径) | sort (加上sort就行,如果需要倒叙,加上 -r 参数,默认按第一个字符排,所以再加上 -g)

最终结果:
  200 180.153.206.34
  40 180.153.114.199
  10 113.110.176.131


场景:awk统计访问日志前十的IP
日志格式:2013-10-29 10:26:09, INFO, send toEmail=wuas6662@163.com,templateId=23,titleId=11,type=3,sendEmail=noreply+renrenzhichang@mail.xiaozhao.com,ip=10.3.22.134,mailType=4,emailId=526f1bd8c8f2a90213662a67
命令:cat mail-2013-10-28.log | awk -F \',\' \'{print $8}\' | sort | uniq -c | sort -k1nr | head -10

 

4.sed

应用场景:字符串替换
命令:sed \'s/stringa1/stringa2/g\' example.txt
说明:将example.txt文件中的 "string1" 替换成 "string2" 

应用场景:文件中删除所有空白行
命令:sed \'/^$/d\' example.txt 从example.txt

应用场景:从example.txt文件中删除所有注释和空白行 
命令:sed \'/ *#/d; /^$/d\' example.txt

应用场景:查看只包含词汇 "string1"的行 
命令:sed -n \'/stringa1/p\'

 

待续

 

以上是关于linux 日常中会用到的命令(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章

Linux工作中常用到的一些命令(持续更新)常用的

linux命令总结——后续用到的内容持续补充和更新

Linux日常用到的命令

回归 | js实用代码片段的封装与总结(持续更新中...)

小程序各种功能代码片段整理---持续更新

hadoop 日常问题汇总(持续更新)