主要讲解(ps top lsof netstat)
一、ps (process status)
1、
ps 命令是 Linux 和其他类 Unix 系统中用于查看当前运行的进程的强大工具。
ps 用于显示当前活动进程信息的命令行工具。
如果想要周期性更新所选进程及其显示的信息时,可以使用 top 命令代替。
ps命令通过读取/proc目录中的虚拟文件来工作
默认情况下,ps 选择与当前用户具有相同有效用户 ID(euid=EUID)并且与调用者关联到同一终端的所有进程。
它显示一层一层的父进程关系,父进程再派生出子进程。
UID是用户的ID标识号,PID是进程的标识号,PPID表示父进程,STIME表示进程的启动时间,TTY表示进程所属的终端控制台,TIME表示进程启动后累计使用的CPU总时间,CMD表示正在执行的命令。
STAT表示进程的状态,进程的状态有很多种:用“R”表示正在运行中的进程,用“S”表示处于休眠状态的进程,用“Z”表示僵死进程,用“<”表示优先级高的进程,用“N”表示优先级较低的进程,用“s”表示父进程,用“+”表示位于后台的进程。START表示启动进程的时间。
2、 -ef -aux
-e:选择所有进程,同 -A
-f:打印完整格式列表
-a:显示所有终端的进程,包括其他用户的进程
-u:显示面向用户的格式
-x:显示没有控制终端的进程
ps -aux --sort -pcpu | less根据cpt使用率进行排序
一般和grep共用 ps -auxf | grep java
二、top
动态查看进程信息 信息众多
进程动态监控,默认根据cpu的占用情况进行排序的,按b可根据内存使用情况排序。
三、lsof
(1) 获取被进程打开文件的信息
在Linux中,一切皆文件,lsof命令可以查看所有已经打开了的文件,比如: 普通文件,目录,特殊的块文件,管道,socket套接字,设备,Unix域套接字等等,同时,它还可以结合 grep 以及 ps 命令进行更多的高级搜索
lsof -u tt 命令表示列出 tt 用户已经打开了的文件
lsof -u ^tt | more 列出除了tt用户外的用户打开的文件
(2) 找出打开着但已被删除了的文件
lsof -u tt | grep deleted
ps .
lsof -i:端口号 可以获得所有在指定端口号上打开的文件
lsof -i TCP:3306 列出使用了TCP 协议并且端口为3306的文件
lsof -i TCP:1-1024 列出使用了TCP协议并且端口范围为 1 到 1024 的文件
组合 kill 命令一起使用,杀死指定用户的所有进程
kill -9 `lsof -t -u tt`
lsof -u tt 是列出tt用户所有打开的文件,加上 -t 选项之后表示结果只列出PID列,也就是进程ID列,其他列都忽略,前面的 kill -9 表示强制结束指定的进程ID
四、netstat
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。分析可疑端口、可疑IP、可疑PID及程序进程
-a 显示所有连线中的Socket。
-n 直接使用IP地址,而不通过域名服务器。
-t 显示TCP传输协议的连线状况。
-u 显示UDP传输协议的连线状况。
-v 显示指令执行过程。
-p 显示正在使用Socket的程序识别码和程序名称。
-s 显示网络工作信息统计表。
1、netstat –antlp | more
状态说明:
LISTENING 侦听状态
ESTABLISHED 建立连接
CLOSE_WAIT 对方主动关闭连接或网络异常导致连接中断
2、ps aux | grep pid | grep –v grep
过滤grep的干扰
根据netstat 定位出的pid,使用ps命令,分析进程
3、隐藏进程查看
ps -ef | awk '{print}' | sort -n | uniq >1
当前所有进程的完整信息列表,按 PID 排序。
ls /proc | sort -n |uniq >2
/proc 目录下的所有条目,按名称排序(包含进程 PID 目录和其他系统文件)
diff 1 2
比较,检测僵尸进程或隐藏进程