linux三剑客

grep

❖ 查找文件内容包含root的行数

  ❖ grep –n root test.txt

❖ 查找文件内容不包含root的行

   ❖ grep –nv root test.txt

 

❖ 查找文件内容包含root的行数

  ❖ grep –n root test.txt

❖ 查找文件内容不包含root的行

  ❖ grep –nv root test.txt

 

sed

❖ 在第四行后添加新字符串

  ❖ sed -e '4 a newline testfile' test.txt

❖ 在第二行后加上 newLine

   ❖ sed '2a drink tea' test.txt

❖ 在第二行前加上 newline

   ❖ sed '2i drink tea' test.txt

❖ 全局替换

   ❖ sed -e 's/root/hello/g' test.txt

❖ 直接修改文件内容

   ❖ sed -i 's/root/hello/g' test.txt

 

awk

❖ 搜索/etc/passwd有root关键字的所有行,并显示对应的shell

   ❖ awk -F: '/root/ {print $7}' /etc/passwd

❖ 打印/etc/passwd/的第二行信息

  ❖ awk -F: 'NR==2{print $0}' /etc/passwd

❖ 使用begin加入标题

  ❖ awk ‘BEGIN {print “BEGIN” ,“BEGIN” } { print $1,$2 }’ /etc/passwd

❖ 自定义分割符

  ❖ echo "111 222|333 444|555 666"|awk 'BEGIN{RS="|"}{print $0}'

 

实战

找出log中的404 500的报错有多少条

❖ grep -E '\s500\s|\s404\s' nginx.log | wc –l

❖ awk '$9~/404|500/' nginx.log |wc -l

访问量最高的ip

❖ awk '{print $1}' nginx.log | sort | uniq -c | sort -nr | head -3

❖ cat /tmp/nginx.log | grep -o '^[0-9]*.[0-9]*.[0-9]*.[0-9]*' | sort| uniq -c | sort - rn| head -3

将topics后面的数字替换成numer

❖ grep '/topics/' nginx.log | sed 's@/topics/[0-9]*@/topics/number@'

将ip地址横向打印

❖ awk '{print $1}' nginx.log | sed ':1;N;s/\n/|/;t1'

❖ 检测指定pid的内存20次

  ❖ for i in {1..20};do top -n 1 -d 1 -p 435|grep 435 |awk '{print $11}';sleep 1; done

posted @ 2022-06-15 10:09  小正哥  阅读(230)  评论(0编辑  收藏  举报