Linux之lsof的用法

一、lsof简介

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

二、lsof命令格式

lsof [参数] [文件]

三、lsof输出信息的含义

在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
在这里插入图片描述
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件
TYPE:文件类型
DEVICE:指定文件磁盘的名称
SIZE:文件的大小
NODE:索引节点
NAME:打开文件的确切名称

四、lsof常用参数

lsof 常见的用法是查找应用程序打开的文件的名称和数目。可用于查找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。

lsof filename 显示打开指定文件的所有进程

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

例题:

  1. 查看22端口现在运行的状况
     [root@mail ~]# lsof -i 22
    
  2. 看所属root用户进程所打开的文件类型为txt的文件
     [root@mail ~]# lsof -a -u root -d txt 
      COMMAND    PID USER  FD      TYPE DEVICE SIZE/OFF     NODE NAME 
      systemd      1 root txt       REG  253,0  1612152 16928141 /usr/lib/systemd/systemd
      kthreadd     2 root txt   unknown                          /proc/2/exe
      ksoftirqd    3 root txt   unknown                          /proc/3/exe
      kworker/0    5 root txt   unknown                          /proc/5/exe
      kworker/u    6 root txt   unknown                          /proc/6/exe
      migration    7 root txt   unknown                          /proc/7/exe
      rcu_bh       8 root txt   unknown                          /proc/8/exe
      rcu_sched    9 root txt   unknown                          /proc/9/exe
    
  3. 查看谁正在使用/bin/bash文件,也就是说查找/bin/bash文件相关的进程
     [root@mail ~]# lsof /bin/bash
      COMMAND  PID USER  FD   TYPE DEVICE SIZE/OFF     NODE NAME
      bash    1048 root txt    REG  253,0   960472 50334124 /usr/bin/bash
      bash    1077 root txt    REG  253,0   960472 50334124 /usr/bin/bash
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值