Linux lsof 命令


前言

在平时的开发过程中,我们会经常遇到查看某个端口占用的情况,一般我们会用到 lsof 和 netstat 这两个命令来查看端口占用信息。

在 linux 环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过 lsof 工具能够查看这个列表对系统监测以及排错将是很有帮助的。

命令详解

Linux lsof 命令是一个列出当前系统打开文件的工具。

命令全拼

lsof = list open files

语法格式

lsof [参数] [文件]

参数说明

  • -a:列出打开文件存在的进程;
  • -c<进程名>:列出指定进程所打开的文件;
  • -d<文件号>:列出占用该文件号的进程;
  • +d<目录>:列出目录下被打开的文件;
  • +D<目录>:递归列出目录下被打开的文件;
  • -g:列出GID号进程详情;
  • -h:显示帮助信息;
  • -i<条件>:列出符合条件的进程;
  • -n<目录>:列出使用NFS的文件;
  • -p<进程号>:列出指定进程号所打开的文件;
  • -u:列出UID号进程详情;
  • -v:显示版本信息。

举个栗子

1、查看开启/Users/yeqiongzhou/Desktup文件的进程:

lsof /Users/yeqiongzhou/Desktop

COMMAND  PID  USER         FD   TYPE  DEVICE   SIZE/OFF  NODE    NAME
iTerm2   483  yeqiongzhou  cwd  DIR   1,4      128       995091  /Users/yeqiongzhou/Desktop

lsof 输出的各列字段信息:

  • COMMAND:进程名称。
  • PID:进程标识符。
  • USER:进程所有者。
  • FD:文件描述符,应用程序通过文件描述符识别该文件。
  • TYPE:文件类型。
  • DEVICE:指定磁盘的名称。
  • SIZE:文件的大小。
  • NODE:索引节点,文件在磁盘上的标识。
  • NAME:打开文件的确切名称。

2、查看 8080 端口占用:

lsof -i:8080

3、显示 ye 进程现在打开的文件:

lsof -c ye

4、显示进程号为 2333 的进程所打开的文件:

lsof -p 2333

Tips

因为 lsof 命令需要访问核心内存和各种文件,所以需要 root 权限执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值