Linux常用命令整理4:lsof,netstat

学习一定要有章法,所谓章法就是内在的逻辑关系 !

lsof

常用于以列表的形式显示所有打开的文件和进程。

以进程-p,用户-u,命令-c,网络-i,文件或目录的维度查看对应的使用关系

lsof

#网络连接:lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
lsof -i #显示所有连接
lsof -i 6 #获取ipv6流量
lsof -i tcp [或udp] #显示tcp连接
lsof -i :80 #显示与指定端口相关的网络信息
lsof -i @host:post #显示指定主机与端口的连接
lsof -i -s tcp:listen[或 established等] #显示等待中[或已建立]的连接

#用户 :各种用户在系统上正在干的事情,包括网络活动和对文件的操作等
lsof -u username #显示指定用户打开了什么

#命令和进程 :查看指定程序或进程由什么启动
lsof -c cname #查看指定命令正在使用的文件或网络连接,比如 php,node,nginx...二进制文件
lsof -p pid #查看指定进程id打开的文件或网络连接

#文件和目录
lsof /var/log/ #显示与指定目录交互的一切
lsof /var/log/test.log #显示与指定文件交互的一切

#只返回pid
lsof -t 
kill -9 `lsof -t -u username` #消灭指定用户运行的所有定西

netstat:

主要功能是以网络连接为核心,协议,获取连接地址(ip和端口),连接状态, 进程,用户,inode等信息;

语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

-a (all)显示所有选项,默认不显示LISTEN相关
-n 能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-e 显示扩展信息,例如uid等

-t 仅显示tcp相关选项
-u 仅显示udp相关选项
-x unix

-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

举例

netstat -anpe|grep xxx #核心命令

netstat -a | more #  列出所有端口
netstat -l #只显示监听端口
netstat -e #扩展详细信息:用户,inode
netstat -p #在 netstat 输出中显示 PID 和进程名称

netstat -c #每隔一秒输出网络信息
netstat -r #显示核心路由信息
netstat -i #显示网络接口列表
netstat -s #显示所有端口的统计信息 

#查看当前并发连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' 
#监控某端口连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l

 

原文地址:https://www.cnblogs.com/tkzc2013/p/15401386.html