Hot For Coding

lsof好用的Linux命令

lsof(list open files)是一个列出当前系统打开文件的工具,我通常使用它来查看网络端口占用,因为在Linux下所有事物都是以文件的形式存在。

root@node5:~# lsof | head -10
COMMAND     PID   TID       USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
systemd       1             root  cwd       DIR              254,0       4096          2 /
systemd       1             root  rtd       DIR              254,0       4096          2 /
systemd       1             root  txt       REG              254,0    1120992    2884146 /lib/systemd/systemd
systemd       1             root  mem       REG              254,0      19008    2883683 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd       1             root  mem       REG              254,0      18832    2883613 /lib/x86_64-linux-gnu/libattr.so.1.1.0
systemd       1             root  mem       REG              254,0      79936    2883655 /lib/x86_64-linux-gnu/libgpg-error.so.0.21.0
systemd       1             root  mem       REG              254,0     283464    2883666 /lib/x86_64-linux-gnu/libblkid.so.1.1.0
systemd       1             root  mem       REG              254,0      22944    2883621 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0
systemd       1             root  mem       REG              254,0      14640    2883595 /lib/x86_64-linux-gnu/libdl-2.24.so

字段说明:

  • COMMAND 进程名
  • PID 进程号
  • TID 线程号
  • USER 进程所有者
  • FD 文件描述符,应用程序通过文件描述符识别该文件
  • TYPE 文件类型
  • DEVICE 指定磁盘的名称
  • SIZE/OFF 文件的大小
  • NODE 索引节点(文件在磁盘上的标识)
  • NAME 文件名称

TYPE:

  • DIR 目录文件
  • REG 普通文件
  • CHR char, 字符设备文件
  • BLK block, 块设备文件
  • IPV4 ipv4 socket 套接字文件
  • IPV6 ipv6 socket 套接字文件

FD 文件描述符 file description:

  • 0 标准输入流
  • 1 标准输出流
  • 2 标准错误流
  • cwd current work directory, 应用程序启动的目录
  • txt 二进制可执行文件或共享库
  • rtd root directory, 根目录
  • mem memory mapped file, 内存映射文件
  • mmap memory-mapped device, 内存映射设备
  • u 可读可写模式
  • r 只读模式
  • w 只写模式

几个常用命令

# 显示所有网络连接
lsof -i

# 只显示 ipv6 的连接
lsof -i 6

# 只显示 tcp 协议的连接
lsof -i TCP

# 指定端口号
lsof -i:port

# 列出用户相关
lsof -u <USER>

比如,查看80端口占用

[root@localhost ~]# lsof -i:80      
COMMAND   PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx   23838 nginx    6u  IPv4 25676340      0t0  TCP *:http (LISTEN)
nginx   23838 nginx    7u  IPv6 25676341      0t0  TCP *:http (LISTEN)
nginx   23839 nginx    6u  IPv4 25676340      0t0  TCP *:http (LISTEN)
nginx   23839 nginx    7u  IPv6 25676341      0t0  TCP *:http (LISTEN)
nginx   28953  root    6u  IPv4 25676340      0t0  TCP *:http (LISTEN)
nginx   28953  root    7u  IPv6 25676341      0t0  TCP *:http (LISTEN)
分享

TITLE: lsof好用的Linux命令

LINK: https://www.qttc.net/364-svg-so-strong.html

NOTE: 原创内容,转载请注明出自琼台博客