资讯专栏INFORMATION COLUMN

linux 常用命令top、awk、sed等

BlackHole1 / 1925人阅读

摘要:负值表示高优先级,正值表示低优先级最后使用的,仅在多环境下有意义上次更新到现在的时间占用百分比进程使用的时间总计,单位秒进程使用的时间总计,单位秒进程使用的物理内存百分比进程使用的虚拟内存总量,单位。进程使用的未被换出的物理内存大小,单位。

1、watch命令 :周期性的执行下个程序,并全屏显示执行的结果

-n:指定周期秒数
-d:高亮显示变动过的地方
-t:关闭watch 命令在顶部的时间间隔命令显示

示例:

    watch -n 1 -d netstat  -ant 
    watch -n 1 -d "pstree | grep http"

2、tcpdump命令:linux网络抓包工具

3、top命令:显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

-b 批处理
-c 显示整个命令行而不只是显示命令名
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数

信息:

 PID 进程id
 PPID 父进程id
 RUSER Real user name
 UID 进程所有者的用户id
 USER 进程所有者的用户名
 GROUP 进程所有者的组名
 TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
 PR 优先级
 NI nice值。负值表示高优先级,正值表示低优先级
 P 最后使用的CPU,仅在多CPU环境下有意义
 %CPU 上次更新到现在的CPU时间占用百分比
 TIME 进程使用的CPU时间总计,单位秒
 TIME+ 进程使用的CPU时间总计,单位1/100秒
 %MEM 进程使用的物理内存百分比
 VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
 SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
 RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
 CODE 可执行代码占用的物理内存大小,单位kb
 DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
 SHR 共享内存大小,单位kb
 nFLT 页面错误次数
 nDRT 最后一次写入到现在,被修改过的页面数。
 S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
 COMMAND 命令名/命令行
 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

示例:

  top -d 1  #设置top的显示间隔(以秒计)
  top -n 3  #设置top退出前迭代的次数
  top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
  top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

4、awk:一个强大的文本分析工具,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。在命令行中使用,但更多是作为脚本来使用。
参考:https://www.cnblogs.com/xudon...
使用方法:

  awk "{pattern + action}" {filenames}
  awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file

参数:

 -F fs or --field-separator fs #指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
 -v var=value or --asign var=value #赋值一个用户定义变量。
 -f scripfile or --file scriptfile #从脚本文件中读取awk命令。
 
 特殊:     
 $0            表示整个当前行
 $1            每行第一个字段
 NF            字段数量变量
 NR            每行的记录号,多文件记录递增
 FNR           与NR类似,不过多文件记录不递增,每个文件都从1开始
 	            制表符
 
            换行符
 FS            BEGIN时定义分隔符
 RS            输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
 ~             匹配,与==相比不是精确比较
!~             不匹配,不精确比较
==             等于,必须全部相等,精确比较
!=             不等于,精确比较
&&            逻辑与
||             逻辑或
+              匹配时表示1个或1个以上
/[0-9][0-9]+/  两个或两个以上数字
/[0-9][0-9]*/  一个或一个以上数字
FILENAME       文件名
OFS            输出字段分隔符, 默认也是空格,可以改为制表符等
ORS            输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
-F"[:#/]"      定义三个分隔符

使用示例:

 awk -F":" "{print $1}"  /etc/passwd
 awk -F":" "{print $1,$3}"  /etc/passwd                          #多了一个逗号,$1与$3使用空格分隔
 awk -F":" "{print "Username:" $1 "		 Uid:" $3 }" /etc/passwd  #自定义输出  
 awk -F: "{print NF}" /etc/passwd                                #显示每行有多少字段
 awk -F: "{print $NF}" /etc/passwd                               #将每行第NF个字段的值打印出来
 awk -F: "NF==4 {print}" /etc/passwd                             #显示只有4个字段的行
 awk -F: "NF>2{print $0}" /etc/passwd                            #显示每行字段数量大于2的行
 awk -F: "{print NR,NF,$NF,"	",$0}" /etc/passwd                 #依次打印行号,字段数,最后字段值,制表符,每行内容
 awk -F: "NR==5 || NR==6{print}"  /etc/passwd                    #显示第5行和第6行
 //匹配代码块
 //纯字符匹配   !//纯字符不匹配   ~//字段值匹配    !~//字段值不匹配   ~/a1|a2/字段值匹配a1或a2   
 awk "/mysql/{print $0}" /etc/passwd              #三条指令结果一样
 awk "!/mysql/{print $0}" /etc/passwd             #输出不匹配mysql的行
 awk "!/mysql|mail/{print}" /etc/passwd           #输出不匹配mysql或mail的行
 awk "/[2][7][7]*/{print $0}" /etc/passwd         #匹配包含27为数字开头的行,如27,277,2777...
 awk -F: "$1~/mail/{print $1}" /etc/passwd        #$1匹配指定内容才显示
 awk -F: "$1!~/mail|mysql/{print $1}" /etc/passwd        

 IF语句 必须用在{}中,且比较内容用()扩起来
 awk -F: "{if($1~/mail/) print $1}" /etc/passwd                                     
 awk -F: "{if($1~/mail/) {print $1}}"  /etc/passwd                              
 awk -F: "{if($1~/mail/) {print $1} else {print $2}}" /etc/passwd  #if...else...

 条件表达式 ==   !=   >   >=  
 awk -F":" "{if($1=="mysql") print $3}" /etc/passwd          //与上面相同 
 awk -F":" "$1!="mysql"{print $3}" /etc/passwd               //不等于
 awk -F":" "$3>1000{print $3}" /etc/passwd                   //大于

 逻辑运算符 && || 
 awk -F: "{if($1~/mail/ && $3>8) print }" /etc/passwd
 awk -F: "{if($1~/mail/ || $3>1000) print }" /etc/passwd 

应用:

 ls -l|awk "NR!=1 && !/^d/{sum[$3]+=$5} END{for (i in sum) printf "%-6s %-5s %-3s %-2s 
",i," ",sum[i]/1024/1024,"MB"}"

5、sed:一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式,处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,直到文件末尾。原文件内容并没有改变。
参考:http://www.runoob.com/linux/l...
参数:

 参数说明:
 -f或--file= 以选项中指定的script文件来处理输入的文本文件。
 -h或--help 显示帮助。
 -V或--version 显示版本信息。
 -n :只打印模式匹配的行
 -e :直接在命令行模式上进行sed动作编辑,此为默认选项
 -i :直接修改文件内容
 
 动作说明:
 a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
 c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
 d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
 i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
 p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
 s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
 
 = 显示文件行号
 w filename
 r filename 从另一个文件中读文本,类似输入重定向 <
 q 第一个模式匹配完成后退出或立即退出
 {} 在定位行执行的命令组,用分号隔开
  单词锚点

示例:

echo hello|sed "s/hello/(&)/" #将hello放在扩号中
sed -i "/DEVICE/cEthernet" test 
nl /etc/passwd | sed "2i drink tea" 
sed -i "/connect/s#YES#NO#" test    #匹配connect的行,把YES替换成NO 
 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/33725.html

相关文章

  • SegmentFault 技术周刊 Vol.19 - Linux 文本处理三利器

    摘要:所以,本期周刊将介绍命令行世界中最常用的文本处理命令三巨头,让它们带你初步领略命令行的强大。简单的,可以直接理解为是一个数据处理工具,倾向于将一行文本分成数个字段来处理,适合小型数据的处理。 showImg(https://sfault-image.b0.upaiyun.com/226/799/2267992322-586b7c52ed9fc); 之前看过一篇文章《当我们 chmod ...

    hightopo 评论0 收藏0
  • LinuxLinux 常用命令

    摘要:作者本文原载于,不允许转载关于命令的正则表达式使用的是不同标准的正则表达式,而且与中的正则表达式标准还不一样,真的蛋疼,详见正则表达式派别综述。 作者:LogM 本文原载于 https://segmentfault.com/u/logm/articles ,不允许转载~ 0. 关于 Linux 命令的正则表达式 awk、sed、grep 使用的是不同标准的正则表达式,而且与 C++、P...

    mzlogin 评论0 收藏0
  • linux 常用命令

    摘要:表示能够处理个并发请求,这个值可根据负载情况自动调整。会打印系统当前网络链接状态,而是用来提取与端口有关的连接的,进行连接数统计。最终返回的数字就是当前所有端口的请求总数。 .bashrc 文件修改 cd /root ll -a vim .bashrc 文件修改 # .bashrc # User specific aliases and functions alias rm=rm...

    NervosNetwork 评论0 收藏0
  • Linux三大利器grep,sedawk

    摘要:通过分隔符指定,按顺序依次为。正则匹配空行统计结果放到数组中,并打印输出参考命令大全实例秒解和的秘密使用脚本执行 一. grep和正则表达式 grep grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出...

    _ipo 评论0 收藏0
  • ❤️Linux三剑客与管道符正则表达式的使用❤️

    文章目录 Linux管道符命令格式实战 正则表达式实战找出所有的hello单词找出hello单词后面有world单词以0开头然后是两个数字然后是一个连字符-,最后是8个数字匹配以字符h开头的单词匹配刚好6个字符的单词匹配一个或更多连接的数字匹配5-12位的QQ号 grep定义格式实战查找文件内容包含h的行数查找文件内容不包含h的行数查找以n开头的行查找以k结尾的行 sed定义语法查看...

    acrazing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<