此文通过一些命令实例来总结相关Linux命令。
统计文件中含某字符串的行数
find hello.log |xargs cat| grep pid | wc -l
统计hello.log文件中含有pid字符串的行数。
find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
使用方法:https://m.runoob.com/linux/linux-comm-find.html
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具,多与管道 | 命令配合使用。之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数(比如find)。
使用方法:https://www.runoob.com/linux/linux-comm-xargs.html
grep 命令用于查找文件里符合条件的字符串。用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
使用方法:https://m.runoob.com/linux/linux-comm-grep.html
wc 命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
参数 -l 显示行数。
使用方法:https://www.runoob.com/linux/linux-comm-wc.html
此外,经常会用到Linux的正则表达式,常用通配符如下:
参考文章:https://zhuanlan.zhihu.com/p/77588479
Linux awk命令处理文本
pidstat -ut 1 1 | awk 'NF >= 11 && $NF != "Command" && $1 != "Average:" {print $(NF), $(NF-2), $(NF-1)}'
该语句实现了输打印当前进程与线程的名称、CPU占用率、使用哪个CPU的信息。
pidstat 是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。用户可以通过指定统计的次数和时间来获得所需的统计信息。
-u:默认的参数,显示各个进程的cpu使用统计
-t:显示选择任务的线程的统计信息外的额外信息
1 1 时间间隔1s,统计一次
pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
使用方法:https://blog.youkuaiyun.com/xixihahalelehehe/article/details/108978234
awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
NF表示一条记录字段的数目(以空格分隔)。
该语句从pidstat的输出中选择数目大于等于11的,并且排除标题栏与统计栏,最后打印当前进程与线程的名称、CPU占用率、使用哪个CPU的信息。
执行pidstat -ut 1 1
:
使用awk处理:
awk使用方法:https://m.runoob.com/linux/linux-comm-awk.html
Linux下有关进程的相关命令
lsof -i:端口号 #查看端口占用情况
ps -aux | grep process #得到进程相关信息
ps -ef | grep process #以全格式显示进程相关信息
netstat -nap | grep pid #通过PID查看占用端口
netstat -tunlp | grep port #显示 tcp,udp 的端口和进程等相关情况
top #实时显示系统中各个进程的资源占用状况