就linux三剑客简单归纳

就linux三剑客简单归纳:
1:awk 

习题1:用 awk 中查看服务器连接状态并汇总
netstat -an|awk ‘/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}‘
ESTABLISHED 1
LISTEN 20
习题2:统计 web 日志访问流量,要求输出访问次数,请求页面或图片,每个请求的总大小, 总访问流量的大小汇总
awk ‘{a[$7]+=$10;++b[$7];total+=$10}END{for(x in a)print b[x],x,a[x]|"sort -rn";print "total size is :"total}‘ /app/log/access_log
total size is :172230
21 /icons/poweredby.png 83076
14 / 70546
8 /icons/apache_pb.gif 18608

awk基本用法:awk –F [:” ”] ‘BEGIN{事件}{事件}END{事件}’
它里面可以用到if,for,数组等类c的语法,其中数组下标除了可以是数字外还可以是字符串,这就大大增强了它的文本统计能力。在awk里变量可以不用先定义,可以直接用,初始值为0。
关于逗号的用法:
Awk和sed里都可以用,用法为awk ‘/A/,/B/ {事件}END{事件}’ filename 匹配所有符合从字符A到第一个字符B的内容并后面事件处理
Sed –n ‘/A/,/B/p’ filename 匹配所有符合从字符A到第一个字符B的内容并输出到屏幕

2:sed

常用参数:
-I 直接修改文档读取的内容,不在屏幕上输出
-n 当选项-n和命令p同时出现时,sed 可打印选定的内容
-r Sed 使用扩展正则

3:grep

常用参数:
-I  忽略字符大小写的差别
-w 精确查找指定字符串,找到了就返回字符所在的那一行
-o 查找指定字符,仅返回查找的内容,一般加E配合,查找正则表达式
-E 选项使用扩展正则表达式

练习:
在下面文本内容里统计device{}里的key的数量,其他地方的key不算。假如filename为case.log:

key is a linuxer.
device: {
oo
key key key
no sql
this is log
niu niu
}
key
device: {
key key
no sql
this is log
niu niu
}
key key
device: {
key key
no sql
this is log
niu niu
}
device: {
key key
no sql
this is log
niu niu
}
Key

个人解答方法:
1:
   awk ‘/^device :{/,/}/ {for(i=1;i<=NF;i++) if($i~/oldboy/) ++count;} END{print count}‘ case.log
解释:先匹配所有符合device开头且每次匹配到第一个}的内容,再在每行的每个字段进行匹配key,最后输出key的num值。
2:
   Sed –n ‘/device :{/,/}/p’ case.log | tr “ ” “\n”| grep –w “key”| wc -l
解释:先用sed进行匹配device里的所有含key的行,在用tr把空格换成换行,再用grep去匹配key的行(每行一个字符段),最后用wc –l统计行的数量及为key的num值。
3:
   Sed –n ‘/device :{/,/}/p’ case.log | awk –F “ ” ‘{for(i=0;i<=NF;i++) if($i~/key/) ++count} END{print count}’

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。
常用参数:
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思
sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,默认从小到大顺序。
cat /etc/passwd | sort -t ‘:‘ -k 3  第三栏来排序,小到大

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

常用参数:
-i   :忽略大小写字符的不同
-c   :进行计数
-u   :只显示唯一的行
-d  :仅显示存在重复的行

cut命令可以从一个文本文件或者文本流中提取文本列。
常用参数:
-d  :后面接分隔字符。与 -f 一起使用;
-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
echo $PATH | cut -d ‘:‘ -f 5 找出第五个路径
echo $PATH | cut -d ‘:‘ -f 1-3,5 找出第一到第三个路径
echo $PATH | cut -d ‘:‘ -f 3-   找出第三到最后一个路径

wc命令统计文件里面有多少行,多少单词,多少字符。
常用参数:
-l  :仅列出行;
-w  :仅列出多少字(英文单字);
-m  :多少字符;
时间: 2024-10-07 06:13:39

就linux三剑客简单归纳的相关文章

Linux三剑客之grep

linux三剑客之grep grep命令是一个强大的文本搜索工具,全称是Global Regular Expression Print,它能使用正则表达式搜索文本,并把匹配的行打印出来,使用权限是所有用户 1.使用格式 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] grep 关键词 文本文件 2.比较常用的参数 -c:仅显示找到的次数 -i:忽略大小写 -n:显示行号 -o:只显示

linux设备驱动归纳总结

前言: (总结已经基本写完,这段时间我会从新排版和修正.错误总会有的,望能指正!) 前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习. 我的总结是根据学习时的笔记(李杨老师授课).<linux内核设计与实现>第三版.<linux设备驱动程序>第三版和<linux设备驱动开发详解>第一版来归纳的.文章中涉及一些自己的想法,并不能保证所说的一定正确. 我也是一位linux初学者,在这里发博也是想跟大家分享技术,同时也希望别人能够指正错误. 我把一些

Linux 三剑客之一--&gt;grep

======================================================================================== * ######------ Linux 正则表达式 ------###### * ######------ 三剑客 grep 文本过滤 ------######*/==============================================================================

linux设备驱动归纳总结(三):5.阻塞型IO实现【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-60025.html linux设备驱动归纳总结(三):5.阻塞型IO实现 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一.休眠简介: 进程休眠,简单的说就是正在运行的进程让出CPU.休眠的进程会被内核搁置在在一边,只有当内核再次把休眠的进程唤醒,进程才会会重新在CPU运行

linux设备驱动归纳总结(三):6.poll和sellct【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-61749.html linux设备驱动归纳总结(三):6.poll和sellct xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下. xxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):7.异步通知fasync【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-62725.html linux设备驱动归纳总结(三):7.异步通知fasync xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数.简单的说,signal函数就是让一个信号与与

linux设备驱动归纳总结(七):1.时间管理与内核延时【转】

本文转载自:http://blog.chinaunix.net/uid-25014876-id-100005.html linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这节将介绍一些很枯燥的内核,大体是内核中时间的概念和内核延时的使用,并没有源代码. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(四):5.SMP下的竞态和并发

linux设备驱动归纳总结(四):5.多处理器下的竞态和并发 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发.除了内核抢占和中断外,由于多处理起的缘故,它可以做到多个程序同时执行.所以,进程除了要防自己的处理器外,还要防别的处理器,这个就是这节要介绍的内容. xxxxxxxxxxxxxxxxxxxxxxx

linux设备驱动归纳总结(三):6.poll和sellct

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一.系统调用select的简介 简单来说,se