lsof
是一个非常强大的工具,用于列出系统中打开的文件(包括网络连接、设备、管道等)。以下是一些常用的 lsof
组合命令及其用途:
1. 列出某个用户打开的文件
lsof -u username复制
用途: 显示指定用户(
username
)打开的所有文件。示例:
lsof -u root
列出root
用户打开的文件。
2. 列出某个进程打开的文件
lsof -p PID复制
用途: 显示指定进程 ID(
PID
)打开的所有文件。示例:
lsof -p 1234
列出进程 ID 为1234
的文件。
3. 列出某个端口相关的连接
lsof -i :端口号复制
用途: 显示与指定端口相关的网络连接。
示例:
lsof -i :80
列出所有与端口80
相关的连接。
4. 列出所有网络连接
lsof -i复制
用途: 显示所有网络连接(TCP/UDP)。
示例:
lsof -i
列出所有网络连接。
5. 列出某个协议的网络连接
lsof -i TCP lsof -i UDP复制
用途: 显示指定协议(TCP 或 UDP)的网络连接。
示例:
lsof -i TCP
列出所有 TCP 连接。
6. 列出某个文件被哪些进程打开
lsof /path/to/file复制
用途: 显示打开指定文件的进程。
示例:
lsof /var/log/syslog
列出打开/var/log/syslog
的进程。
7. 列出某个目录被哪些进程打开
lsof +D /path/to/directory复制
用途: 显示打开指定目录的进程。
示例:
lsof +D /var/log
列出打开/var/log
目录的进程。
8. 列出所有 IPv4 或 IPv6 连接
lsof -i 4 # IPv4 lsof -i 6 # IPv6复制
用途: 显示所有 IPv4 或 IPv6 的网络连接。
示例:
lsof -i 4
列出所有 IPv4 连接。
9. 列出某个命令打开的文件
lsof -c 进程名复制
用途: 显示指定进程名打开的文件。
示例:
lsof -c nginx
列出所有nginx
进程打开的文件。
10. 列出所有监听端口
lsof -i -sTCP:LISTEN复制
用途: 显示所有正在监听的端口。
示例:
lsof -i -sTCP:LISTEN
列出所有监听状态的连接。
11. 列出某个用户的所有网络连接
lsof -u username -i复制
用途: 显示指定用户的所有网络连接。
示例:
lsof -u root -i
列出root
用户的所有网络连接。
12.列出所有打开文件的进程
lsof | more复制
用途: 列出系统中所有打开的文件(按需分页显示)。
示例:
lsof | more
分页显示所有打开的文件。
13. 列出某个设备打开的文件
lsof /dev/sda1复制
用途: 显示打开指定设备的进程。
示例:
lsof /dev/sda1
列出打开/dev/sda1
的进程。
14. 列出所有已删除但仍被打开的文件
lsof | grep deleted复制
用途: 显示已被删除但仍被进程占用的文件。
示例:
lsof | grep deleted
列出所有已删除但仍被打开的文件。
15. 组合查询
lsof -i TCP:80 -u root复制
用途: 显示
root
用户打开的所有 TCP 端口80
的连接。示例:
lsof -i TCP:80 -u root
列出root
用户的所有 TCP 80 端口连接。
16. 显示文件的详细信息
lsof -t /path/to/file复制
用途: 仅显示打开指定文件的进程 ID(PID)。
示例:
lsof -t /var/log/syslog
显示打开/var/log/syslog
的进程 ID。
17. 列出所有打开的网络文件和设备
lsof -i -n -P复制
用途: 列出所有网络连接,禁用主机名和端口号解析。
示例:
lsof -i -n -P
列出所有网络连接,直接显示 IP 和端口号。
18. 列出某个文件系统的打开文件
lsof +f -- /path/to/filesystem复制
用途: 显示指定文件系统中打开的文件。
示例:
lsof +f -- /
列出根文件系统中打开的文件。
19. 列出所有打开的日志文件
lsof /var/log复制
用途: 显示所有打开的日志文件。
示例:
lsof /var/log
列出/var/log
目录下所有打开的文件。
20. 杀死占用某个端口的进程
kill -9 $(lsof -t -i :端口号)复制
用途: 杀死占用指定端口的进程。
示例:
kill -9 $(lsof -t -i :8080)
杀死占用端口8080
的进程。
总结
lsof
的常用组合命令可以帮助你快速定位文件、网络连接、进程等信息。根据具体需求选择合适的组合即可。如果需要更详细的信息,可以查看 man lsof
或运行 lsof -h
获取帮助。