lsof 使用

 

lsof -i 

lsof -a -p pid

lsof 是一个非常强大的工具,用于列出系统上打开的文件,包括网络套接字、管道、设备等。以下是一些 lsof 的常用用法和参数说明:

1. 列出所有打开的文件
bash
复制代码
lsof
显示系统上所有打开的文件。
2. 显示某个用户打开的文件
bash
复制代码
lsof -u username
显示特定用户(如 username)打开的文件。
3. 显示某个进程打开的文件
bash
复制代码
lsof -p PID
显示特定进程(以 PID 表示)打开的文件。
4. 显示某个端口的占用情况
bash
复制代码
lsof -i :port
显示特定端口(如 port)的占用情况,常用于检查某个端口是否被占用。
5. 列出某个网络协议的打开文件
bash
复制代码
lsof -i tcp
lsof -i udp
分别显示所有 TCP 或 UDP 连接。
6. 列出与某个网络地址相关的连接
bash
复制代码
lsof -i @hostname
显示与某个网络地址(如 hostname 或 IP 地址)相关的所有网络连接。
7. 列出某个设备的打开文件
bash
复制代码
lsof /dev/sda1
显示某个设备(如 /dev/sda1)上的所有打开文件。
8. 查找某个目录下的打开文件
bash
复制代码
lsof +D /path/to/directory
列出某个目录(如 /path/to/directory)及其子目录中所有打开的文件。
9. 列出与某个文件关联的进程
bash
复制代码
lsof /path/to/file
显示某个文件(如 /path/to/file)当前被哪些进程使用。
10. 列出某个命令打开的文件
bash
复制代码
lsof -c command
显示某个命令(如 command)的所有打开文件。
11. 查找特定端口和协议的网络连接
bash
复制代码
lsof -i tcp:80
显示所有使用 TCP 协议的 80 端口的网络连接。
12. 显示所有网络连接
bash
复制代码
lsof -i
显示所有打开的网络连接。
13. 刷新间隔显示网络连接
bash
复制代码
lsof -r 2 -i
每 2 秒刷新一次,显示当前网络连接的状态。这对于监控网络连接的变化非常有用。
14. 列出与某个进程有关的所有文件描述符
bash
复制代码
lsof -a -p PID
显示指定进程(PID)打开的所有文件,包括标准输入、输出等。
15. 显示某个端口上的所有监听进程
bash
复制代码
lsof -i :80 | grep LISTEN
显示正在监听指定端口(如 80 端口)的进程。
16. 强制关闭某个文件/连接
bash
复制代码
kill -9 $(lsof -t -i :port)
强制关闭占用某个端口(如 port)的所有进程。
17. 以脚本格式输出
bash
复制代码
lsof -F
使用脚本格式输出,便于进一步处理。
18. 列出未显示用户名的文件
bash
复制代码
lsof -l
列出 UID,而不是用户名。
总结
lsof 是一个功能丰富的命令,能够深入查看系统中的文件、网络连接等资源的使用情况,特别适合于排查端口占用、文件锁定等系统问题。

 

posted @ 2024-08-14 11:56  redrobot  阅读(3)  评论(0编辑  收藏  举报