Linux — lsof和netstat命令

lsof命令

 

它可以列出某个进程打开的所有文件信息,打开的文件可能是普通文件,目录,nfs文件,块文件,字符文件,共享库

,常规管道命名管道,符号链接,socket流,网络socket,UNIX域socket.

1.不带任何参数运行lsof会列出所有进程打开的所有文件(lsof -h 查看参数)

2.列出那些进程使用某些文件


lsof /usr/local/apache2/logs/access_log  

3.递归查找某个目录中所有打开的文件

lsof +D /usr/local/apache2/logs   
等价于: lsof | grep '/usr/local/apache2/logs' 

4.查找某个程序打开的所有文件

lsof -c http; 可逗号分隔多个进程名称,如lsof -c http,tcp

5.列出某个用户打开的所有文件

lsof -u root 列出根用户使用的文件  
lsof -u root -c httpd 列出根用户运行的或者apache进程使用的所有文件     
lsof -a -u root -c httpd 列出根用户运行的且apache进程使用的文件

6.列出所有由某个pid对应的进程打开的文件


lsof -p PID  

7.列出系统中开放端口上服务的详细信息

lsof -i 列出所有打开了网络套接字(TCP和UDP)的进程  
lsof -i tcp 列出所有TCP网络连接  
lsof -i :port 使用某个端口的进程 

8.列出所有与某个描述符关联的文件

lsof -d 2 列出所有以描述符2打开的文件  
lsof -d 0-2 列出所有描述符为0,1,2的文件  
lsof -d mem 列出所有内存映射文件  
lsof -d txt 列出所有加载在内存中并正在执行的进程  

 

netstat命令

netstat -h  可查看如何使用该命令,下面列出常用的几个参数:

-a (all)显示所有选项  
-t (tcp)仅显示tcp相关选项  
-u (udp)仅显示udp相关选项  
-n 拒绝显示别名,能显示数字的全部转化成数字。  
-l 仅列出有在 Listen (监听) 的服务状态  
-p 显示建立相关链接的程序名  
-r 显示路由信息,路由表  
-e 显示扩展信息,例如uid等  
-s 按各个协议进行统计  
-c 每隔一个固定时间,执行该netstat命令。 

1.列出所有端口 

netstat -a

2.列出所有tcp或者udp端口

netstat -at 或者 netstat -au

3.只显示监听端口

netstat -l

4.只列出所有监听tcp或者udp端口

netstat -lt 或者 netstat -lu

5.只列出unix 端口

netstat -lx

6.显示TCP或者UDP端口的统计信息

netstat -st或-su

7.netstat将每个一秒输出网络信息

netstat -c

8.显示核心路由器

netstat  -r

9.找出程序运行的端口

netstat -ap | gerp ssh

10.显示网络接口列表

netstat -i

 

你可能感兴趣的:(Linux)