`

linux lsof - list open files

阅读更多
【基本介绍】
lsof - list open files
It is a command line utility which is used to list the information about the files that are opened by various processes. In unix, everything is a file, ( pipes, sockets, directories, devices, etc.). So by using lsof, you can get the information about any opened files.所有的东西都是文件,lsof用来查看打开文件的进程

【参数介绍】
[root@pandaVM ~]# lsof | head -10
COMMAND     PID      USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
init          1      root  cwd       DIR                8,2      4096          2 /
init          1      root  rtd       DIR                8,2      4096          2 /
init          1      root  txt       REG                8,2    150352     130349 /sbin/init
init          1      root  mem       REG                8,2     65928     260653 /lib64/libnss_files-2.12.so
init          1      root  mem       REG                8,2   1926800     264737 /lib64/libc-2.12.so
init          1      root  mem       REG                8,2     93320     264762 /lib64/libgcc_s-4.4.7-20120601.so.1
init          1      root  mem       REG                8,2     47064     264739 /lib64/librt-2.12.so
init          1      root  mem       REG                8,2    145896     260719 /lib64/libpthread-2.12.so
init          1      root  mem       REG                8,2    268232     264740 /lib64/libdbus-1.so.3.4.0

FD – Represents the file descriptor.(文件描述) Some of the values of FDs are,

    cwd – Current Working Directory
    txt – Text file
    mem – Memory mapped file
    mmap – Memory mapped device
    NUMBER – Represent the actual file descriptor. The character after the number i.e ’1u’, represents the mode in which the file is opened. r for read, w for write, u for read and write.

TYPE – Specifies the type of the file.(文件类型) Some of the values of TYPEs are,

    REG – Regular File
    DIR – Directory
    FIFO – First In First Out
    CHR – Character special file

lsof  filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string   显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username  显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i :port 显示使用端口的进程


【常用例子】
List processes which opened a specific file(显示打开指定文件的进程)
# lsof /var/log/syslog

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd 488 syslog    1w   REG    8,1     1151 268940 /var/log/syslog


List all open files by a specific process(显示指定进程IP)
# lsof -p 1753

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
bash    1753 lakshmanan  cwd    DIR    8,1     4096  393571 /home/lakshmanan/test.txt
bash    1753 lakshmanan  rtd    DIR    8,1     4096       2 /
bash    1753 lakshmanan  255u   CHR  136,0      0t0       3 /dev/pts/0


List processes which are listening on a particular port(显示指定端口)
# lsof -i :25

COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4   2541 Debian-exim    3u  IPv4   8677       TCP localhost:smtp (LISTEN)


List files opened by a specific user(显示指定用户的进程)
# lsof -u lakshmanan

COMMAND    PID       USER   FD   TYPE     DEVICE SIZE/OFF       NODE NAME
update-no 1892 lakshmanan   20r  FIFO        0,8      0t0      14536 pipe
update-no 1892 lakshmanan   21w  FIFO        0,8      0t0      14536 pipe
bash      1995 lakshmanan  cwd    DIR        8,1     4096     393218 /home/lakshmanan


List opened files based on process names starting with(显示指定进程名)
# lsof -c ssh -c init

COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
init         1       root  txt    REG        8,1   124704  917562 /sbin/init
init         1       root  mem    REG        8,1  1434180 1442625 /lib/i386-linux-gnu/libc-2.13.so
init         1       root  mem    REG        8,1    30684 1442694 /lib/i386-linux-gnu/librt-2.13.so
...
ssh-agent 1528 lakshmanan    1u   CHR        1,3      0t0    4369 /dev/null
ssh-agent 1528 lakshmanan    2u   CHR        1,3      0t0    4369 /dev/null
ssh-agent 1528 lakshmanan    3u  unix 0xdf70e240      0t0   10464 /tmp/ssh-sUymKXxw


List opened files under a directory(显示目录下被打开的文件)
# lsof +D /var/log/

COMMAND   PID   USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd  488 syslog   1w   REG    8,1     1151 268940 /var/log/syslog
rsyslogd  488 syslog   2w   REG    8,1     2405 269616 /var/log/auth.log
console-k 144   root   9w   REG    8,1    10871 269369 /var/log/ConsoleKit/history



【参考引用】
http://blog.csdn.net/guoguo1980/article/details/2324454
http://www.thegeekstuff.com/2012/08/lsof-command-examples/
分享到:
评论

相关推荐

    lsof-4.87-6.el7.x86_64.rpm

    今天我们将深入探讨的是`lsof`(List Open Files)命令,它是一个用于查看系统中打开文件的实用程序,尤其在故障排查、性能分析以及系统监控等方面有着广泛的应用。在CentOS 7环境下,`lsof`是不可或缺的工具之一。...

    linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用1

    `lsof`(List Open Files)是Linux操作系统中的一个强大工具,用于查看系统中当前打开的文件和它们被哪些进程占用。它可以帮助系统管理员、开发者或者普通用户了解系统资源的使用情况,诊断问题,例如查找哪个进程...

    lsof-4.89-ia64_64-11.31.depot.gz

    在这个过程中,`lsof`(list open files)命令是一个不可或缺的工具。`lsof-4.89-ia64_64-11.31.depot.gz`是专为HP-UX操作系统设计的`lsof`安装包,它的存在使得在HP-UX平台上能够方便地查看系统中打开的文件,包括...

    lsof(list open files)命令

    lsof(list open files)命令 lsof(list open files)命令是一种列出当前系统打开文件的工具。在 Linux 环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。lsof ...

    linux使用lsof命令查看文件打开情况

    `lsof`(list open files)命令是一个非常实用的工具,它能够显示系统中所有打开的文件和对应的进程信息。本文将深入探讨`lsof`命令的使用方法及其在不同场景下的应用。 ### 前言 在Linux环境下,一切资源都被抽象为...

    Linux查看端口占用lsof -i:port的方法

    `lsof`(List Open Files)是一个非常实用的命令行工具,它可以显示当前系统中打开的文件、套接字、管道等信息。在本文中,我们将详细讨论如何使用`lsof -i`命令来查看端口占用情况,特别是通过指定端口号的方式。 ...

    linux lsof命令详解.docx

    udevd 690 root mem REG 8,1 17363025 89 /lib/x86_64-linux-gnu/libnss_files-2.13.so syslogd 1246 syslog 2w REG 8,1 1872454 18 /var/log/auth.log syslogd 1246 syslog 3w REG 8,1 1824534 14 /var/log/syslog ...

    lsof_4.76.tar.gz

    为了更好地监控和调试系统,开发者和管理员经常会用到各种实用工具,其中lsof(List Open Files)就是一款不可或缺的利器。本文将详细介绍如何通过二进制安装包`lsof_4.76.tar.gz`在Linux系统上安装lsof,并探讨其...

    linux_lsof.rar

    Linux中的`lsof`(List Open Files)是一个强大的系统工具,用于查看当前系统中打开的文件和资源。它能够显示进程信息,包括进程ID、所使用的文件描述符、打开的文件路径、网络连接等。在Linux环境中,了解并熟练...

    lsof_4.86 tar bz2

    lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 ...

    CentOS 7.9.2009 for x86-64

    标签 "lsof" 指的是一个非常重要的Linux命令行工具,全称"List Open Files"。lsof用于查看系统中当前打开的文件,这些文件可能被各种进程所持有。它能够显示进程ID、用户、进程状态、文件描述符、文件类型、文件路径...

    前端开源库-lsof

    `lsof`(List Open Files)是一个在Unix-like操作系统上广泛使用的命令行工具,用于查看系统中哪些进程正在使用哪些文件、网络连接、共享内存段等资源。在前端开发的背景下,`node-lsof`是将`lsof`的功能集成到Node....

    lsof

    而lsof(List Open Files)是一个强大的命令行工具,它能显示当前系统中打开文件的相关信息,包括进程、网络连接、共享库等,对于诊断和解决问题具有极高的价值。本文将详细介绍lsof的工作原理和实际应用。 一、...

    Linux下利用Lsof恢复误删文件的方法.docx

    Lsof(LiSt Open Files)是一个命令行工具,用于显示进程打开的文件信息。Lsof 工具可以显示进程打开的文件的详细信息,包括文件描述符、文件路径、文件类型等。 恢复误删文件的方法 误删文件是一种常见的错误,...

    ScoUnix系统lsof命令源码

    lsof(List Open Files)是一个用于查看系统中打开文件的实用程序,它能够显示进程、网络连接、共享库等与文件相关的详细信息。在ScoUnix这样的传统Unix系统中,lsof命令的使用尤其重要,因为它可以帮助系统管理员...

    使用lsof查找打开的文件

    lsof(list open files)是一个实用工具,允许系统管理员查看系统中所有进程打开的文件、网络连接、管道等资源。尽管lsof在大多数UNIX版本中存在,但并不总是预装在操作系统中,需要单独安装。 lsof命令的基本用法...

    Python-python版本的lsof到graphviz解析器

    在IT行业中,我们经常需要监控和理解系统资源的使用情况,其中`lsof (List Open Files)`是一个非常实用的命令行工具,它能够显示当前系统中打开文件的相关信息,如进程ID、用户、文件描述符等。然而,`lsof`输出的...

Global site tag (gtag.js) - Google Analytics