做图软件ps下载网站网络规划设计师教程第二版电子书
目录
- lsof 命令使用指南
 - 基本语法
 - 常用选项
 - 使用示例
 
- lsof vs netstat
 - lsof
 - netstat
 - 区别
 - 示例对比
 
lsof 命令使用指南
lsof(List Open Files) 是一个用于列出当前系统中打开文件的命令,适用于 Unix 和类 Unix 操作系统。它不仅可以列出常规文件,还可以列出打开的网络文件、设备等。
基本语法
lsof [选项] [文件]
 
常用选项
- 列出所有打开的文件
 
lsof
 
- 列出特定用户打开的文件
 
lsof -u username
 
- 列出特定进程打开的文件
 
lsof -p PID
 
- 列出特定文件被哪个进程打开
 
lsof /path/to/file
 
- 列出特定网络端口上打开的文件
 
lsof -i :port
 
- 列出网络文件
 
lsof -i
 
- 列出某个目录下打开的文件
 
lsof +D /path/to/dir
 
- 列出某个协议的网络文件
 
lsof -i tcp
lsof -i udp
 
- 列出所有正在监听的套接字
 
lsof -i -sTCP:LISTEN
 
使用示例
-  
查找用户
root打开的所有文件lsof -u root -  
查找进程 ID 为
1234的进程打开的文件lsof -p 1234 -  
查找 TCP 端口 80 上打开的文件
lsof -i :80 -  
查找并列出
/var/log/syslog文件被哪些进程打开lsof /var/log/syslog -  
查找目录
/home/user下的所有打开文件lsof +D /home/user -  
查找所有 TCP 连接
lsof -i tcp -  
查找所有 UDP 连接
lsof -i udp -  
列出所有正在监听的 TCP 套接字
lsof -iTCP -sTCP:LISTEN 
lsof vs netstat
lsof
- 用途:列出打开的网络文件,包括详细的进程信息。
 - 显示内容:可以查看哪些进程正在使用网络端口。
lsof -iTCP -sTCP:LISTEN # 列出所有正在监听的 TCP 端口以及相关的进程。 
netstat
- 用途:显示网络连接、路由表和网络接口信息。
 - 显示内容:网络连接的状态、端口的监听情况,但不显示具体的进程信息。
netstat -tuln # 列出所有监听的 TCP 和 UDP 套接字。 
区别
-  
信息范围:
lsof可以显示进程与网络连接的对应关系。netstat主要显示网络连接和端口状态。
 -  
输出内容:
lsof提供进程ID、用户、文件描述符等详细信息。netstat提供协议、端口、连接状态等网络层信息。
 -  
使用场景:
- 使用 
lsof时,可以了解哪个进程在使用特定的网络端口。 - 使用 
netstat时,可以快速查看网络连接的整体状态。 
 - 使用 
 
示例对比
- 查看所有正在监听的 TCP 端口:
lsof -iTCP -sTCP:LISTEN #列出所有正在监听的 TCP 端口以及相关的进程。 netstat -tuln # 列出所有监听的 TCP 和 UDP 套接字 - 查看特定端口(如80)被哪个进程使用:
lsof -i :80 netstat -anp | grep :80 
总结:lsof 提供进程级别的详细信息,而 netstat 更适合查看网络连接和接口的状态,两者可以结合使用以获得更全面的信息。
