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