当前位置:首页>Linux>Linux命令大全-lsof命令

Linux命令大全-lsof命令

  • 2026-10-11 06:06:29
Linux命令大全-lsof命令

点击蓝字,关注我们

一、简介

lsof(英文缩写:list opened files)命令用于列出当前系统打开的所有文件及相关进程信息。在Liunx系统中“一切皆文件”的理念意味着lsof不仅能显示常规文件,还能显示相关网络连接、设备文件、管道和套接字等相关信息。

二、语法

语法:lsof [参数] [文件名]

常用参数说明:

选项

说明

-a

使用AND 逻辑组合多个条件

-c <进程名>

显示指定进程打开的文件

-d <文件描述符>

显示指定文件描述符的文件

-i

显示网络连接相关信息

-n

不解析主机名(显示IP 地址)

-P

不解析端口名(显示端口号)

-p <PID>

显示指定进程ID 打开的文件

-u <用户名>

显示指定用户打开的文件

+D <目录>

递归显示目录下被打开的文件

-t

仅输出进程ID(适合脚本使用)

三、用常示例

1、查看所有打开的文件

[root@CentOS7 ~]# lsofCOMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAMEsystemd       1                 root  cwd       DIR              253,0       247         96 /systemd       1                 root  rtd       DIR              253,0       247         96 /systemd       1                 root  txt       REG              253,0   1616360   51185640 /usr/lib/systemd/systemd*******************省略部分内容输出*******************

2、查看某个进程打开的文件

//查看PID为22进程打开的文件[root@CentOS7 ~]# lsof -p 22COMMAND   PID USER   FD      TYPE DEVICE SIZE/OFF NODE NAMEkintegrit  22 root  cwd       DIR  253,0      247   96 /kintegrit  22 root  rtd       DIR  253,0      247   96 /kintegrit  22 root  txt   unknown                      /proc/22/exe//查看所有ssh进程打开的文件[root@CentOS7 ~]# lsof -c sshCOMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAMEsshd    4324 root  cwd    DIR              253,0      247       96 /*******************省略部分内容输出*******************

3、查看相关网络连接

//查看所有网络连接[[root@CentOS7 ~]# lsof -iCOMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEsystemd      1   root   42u  IPv4  26650      0t0  TCP *:sunrpc (LISTEN)systemd      1   root   43u  IPv4  26651      0t0  UDP *:sunrpc //查看所有使用22端口的连接[root@CentOS7 ~]# lsof -i :22COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEsshd    4324 root    3u  IPv4  33277      0t0  TCP *:ssh (LISTEN)sshd    4324 root    4u  IPv6  33279      0t0  TCP *:ssh (LISTEN)sshd    6844 root    3u  IPv4 166898      0t0  TCP CentOS7.6:ssh->192.168.20.2:56508 (ESTABLISHED)//查看所有TCP连接[root@CentOS7 ~]# lsof -i TCPCOMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEsystemd    1   root   42u  IPv4  26650      0t0  TCP *:sunrpc (LISTEN)systemd    1   root   44u  IPv6  26652      0t0  TCP *:sunrpc (LISTEN)*******************省略部分内容输出*******************

4、查看某个用户打开的文件

[root@CentOS7 ~]# lsof -u rootCOMMAND    PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAMEsystemd      1 root  cwd       DIR              253,0       247         96 /systemd      1 root  rtd       DIR              253,0       247         96 /systemd      1 root  txt       REG              253,0   1616360   51185640 /usr/lib/systemd/systemd*******************省略部分内容输出*******************

5、查看被删除但仍被进程占用的文件

[root@CentOS7 ~]# lsof |grep deletedpulseaudi  6987                  gdm    6u      REG                0,4  67108864      36776 /memfd:pulseaudio (deleted)alsa-sink  6987  7001            gdm    6u      REG                0,4  67108864      36776 /memfd:pulseaudio (deleted)*******************省略部分内容输出*******************

这种情况常见于删除了某一文件(如:日志文件),但服务仍在运行,导致磁盘空间未被释放。

6、查看指定目录下被打开的文件

[root@CentOS7 ~]# lsof +D /var/logCOMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAMEauditd    3888 root    5w   REG  253,0  3103745 50331748 /var/log/audit/audit.logabrt-watc 3936 root    4r   REG  253,0    50383     1574 /var/log/Xorg.0.log*******************省略部分内容输出*******************

7、只查看PID

[root@CentOS7 proc]# lsof -t123*******************省略部分内容输出*******************

四、lsof输出字段解释

losf命令输出的字段列如下:

COMMAND     PID             USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME

COMMAND:进程名称

PID:进程ID

USER:运行进程的用户

FD:文件描述符,分为以下几种

    cwd:当前工作目录

    txt:程序代码文件

    mem:内存映射文件

    0u、1u、2u:标准输入、输出和错误

TYPE:文件类型,分为以下几种

          REG:常规文件

    DIR:目录

    CHR:字符设备等

DEVICE:设备号

SIZE/OFF:文件大小/偏移量

NODE:文件inode号

NAME:文件名或挂载点

喜欢古诗词的同学们,欢迎移步「纸间有糖」,愿这里的文字甜到你心里。

最新文章

随机文章