进程监控top free ps grep pgrep pkill kill & bg fg jobs nohup ctrl+z pstree
一、top命令
https://blog.csdn.net/gxiaop/article/details/55096686
1是显示其他cpu内容
M按照内存排序
P按照cpu排序
K 杀掉某个进行
nice 表示优先级改动过的,优先级数字越低,优先度越大
top -p 1234 显示1234的情况
二、free命令
free 按照kb显示
free -m 按照m显示
free -h 按照G显示
三、ps命令
https://blog.csdn.net/u014636209/article/details/82141742
ps -aux
ps aux --sort -pmem,+pcpu 按照内存降序,cpu升序查询,
进程属主 进程id cpu 内存 虚拟大小 页数 终端ID 状态 开始时间 运行时间 命令
STAT 进程状态(有以下几种)
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程(从来没见过);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
ps -ef
最好加上-,否则信息很大。。。
用户ID 进程ID 父进程ID cpu 启动时间 终端ID 运行时间 命令
ps 根据uid来选择查看进程
- ps -C 根据cmd命令来选
- ps -G 根据组ID来选
- ps -p 根据进程id来选
- ps -s sessionID 来选
- ps -t 根据tty 来选
- ps -u 根据用户选
具体格式可以加f
ps -o 自定义格式
ps -o user,uid,uname,group,gid,args=COMMAND,cmd,tty,time,pmem.pcpu
中间加,或者再写个-o
四、grep fgrep pgrep egrep
https://blog.csdn.net/xiaoxinyu316/article/details/46729443
https://blog.csdn.net/weixin_42558057/article/details/82758467
grep 全局正则表达式打印
Global Regular Expressions Print
grep <flags> '<regular expression>' <filename>
grep '\<Tom\>' file 包含单词Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy开头的行
grep '\.bak$' file 包含以.bak结束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的单词的行
grep '[A-Z]' file 包含至少一个大写字母的行
grep '[0-9]' file 包含至少一个数字的行
grep '[A-Z]...[0-9]' file 包含五个字符,以大写开头, 和一个数字结尾的行.
grep -w '[tT]est' file 包含单词和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印所有包含cathy的行, 而不考虑大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清单.
grep -n tom file 打印匹配的行并追加行号.
grep "$LOGNAME" file 包含变量内容的行, 注意必须用双引号, 单引号则无法引用变量.
grep '$name' file 打印包含字符$name的行.
fgrep 固定字符串全局正则表达式打印
Fixed-string Global Regular Expressions Print
fgrep "$name...[a-z]" file 就是在file里面找到和字符$name...[a-z]一样的行. 其中$和...等没有转义的意义.
pgrep 进程ID全局正则表达式打印
Process-ID Global Regular Expressions Print
pgrep -l bash 全显示
pgrep -c bash 查找
pgrep bash 查找pid
pgrep -U uid 按uid 来查找
egrep 扩展正则表达式打印
Extended Global Regular Expressions Print
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
egrep '^ +' file 以一个或者多个空格开头的行.
grep '^ *' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一个ab的行.
egrep 'x[0-9]?' file 包含x或者x后面跟着0个或者多个数字的行.
egrep 'fun\.$' * 所有文件里面以fun.结尾的行.
egrep '[A-Z]+' file 至少包含一个大写字母的行.
egrep '[0-9]' file 至少一个数字的行.
egrep '[A-Z]...[0-9]' file 有五个字符, 第一个式大写, 最后一个是数字的行.
egrep '[tT]est' file 包含单词test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考虑sam的大小写,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清单.
egrep -n tom file 包含tom的行, 每行前面追加行号.
egrep -s "$name" file 找到变量名$name的, 不打印而是显示退出状态. 0表示找到. 1表示表达式没找到符合要求的, 2表示文件没找到.
五、pkill kill killall
https://blog.csdn.net/xc_zhou/article/details/80768891
killall 按全名字全杀
killall 参数 进程名字
-9 强制杀死 是终止信号
kill -19 进程名 发送暂停信号
kill -18 进程名 发送继续信号
killal -l 列出已知信号
kill -l KILL 查询指定信号的数字
kill 单进程杀死
kill [参数] [进程id]
kill %1 杀死 jobid
kill -9 进程号 杀死进程
pkill 按近似名字全杀
pkill 进程名字
pkill和killall区别,killall是全名称杀死,pkill近似的都杀死
pkill awk 所有awk名字全杀死
六、& bg fg jobs nohup ctrl+z
http://www.cnblogs.com/cy-8593/p/9523605.html
&
挂起后台执行,一旦断开终端,则任务终止
fg %N
fg %1 把后台程序放到前端
bg %N
bg %1 把工作好1号的任务继续执行
nohup
终端退出任务继续执行,一般和nohup CMD & 一起用
jobs
查看终端挂起来的任务
ctrl+z
终止执行,挂起到后端,可以kill -18 xxxx 或者bg %1继续运行
七、pstree 进程树
pstree 默认相当于pstree -p 1 从进程1扩展出来的进程
pstree -p pid 可以看某个ID 的进程树,往后扩展
pstree -p 2 守护进程树 不接受任何终端控制
![](https://images.cnblogs.com/cnblogs_com/zhouguanglu/1345279/o_zhifubaoshouqian.png)
支付宝
您的资助是我最大的动力!
金额随意,欢迎来赏!
微信
![](https://images.cnblogs.com/cnblogs_com/zhouguanglu/1345279/o_weixinshouqian.png)
![](https://images.cnblogs.com/cnblogs_com/zhouguanglu/1345279/o_jiahaoyou.jpg)