`

10 个 lsof 命令行的使用示例

 
阅读更多

转:

http://www.oschina.net/question/12_145479

 

 

 

 

1, 使用 lsof 命令行列出所有打开的文件

# lsof 

这可是一个很长的列表,包括打开的文件和网络

lsof1

上述屏幕截图中包含很多列,例如 PID、user、FD 和 TYPE 等等。

FD - File descriptor

FD 列包含这样一些值

cwd - Current working directory
txt - Text file
mem - Memory Mapped file
mmap - Memory Mapped device
Number - It represent the actual file descriptor. For example, 0u, 1w and 3r

r 是读的意思,w 是写,u 代表读写

Type 代表文件类型,例如:

>REG - Regular file 
>DIR - Directory
>CHR - Character special file
>FIFO - First in first out 

2, 列出某个用户打开的文件

# lsof -u user_name 

Example:

# lsof -u crybit
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF       NODE NAME
sshd    29609 crybit  cwd    DIR            144,233     4096  117711421 /
sshd    29609 crybit  rtd    DIR            144,233     4096  117711421 /
sshd    29609 crybit  txt    REG            144,233   409488  119020186 /usr/sbin/sshd
sshd    29609 crybit  mem    REG            144,241          2443001619 (deleted)/dev/zero (stat: No such file or directory)
sshd    29609 crybit  mem    REG               8,37           119021850 /lib64/libnss_dns-2.5.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119021984 /lib64/security/pam_succeed_if.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119022000 /lib64/security/pam_limits.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119021960 /lib64/security/pam_keyinit.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119021972 /lib64/security/pam_cracklib.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119021987 /lib64/security/pam_nologin.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119021988 /lib64/security/pam_deny.so (path dev=144,233)
sshd    29609 crybit  mem    REG               8,37           119019223 /usr/lib64/libcrack.so.2.8.0 (path dev=144,233)
.....
..... 

3, 列出在某个端口运行的进程

# lsof -i :port_number 

Example:

# lsof -i :22
COMMAND   PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
sshd      769   root    3u  IPv6 2281738844      0t0  TCP *:ssh (LISTEN)
sshd      769   root    4u  IPv4 2281738846      0t0  TCP *:ssh (LISTEN) 
# lsof -i :3306
COMMAND   PID  USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
mysqld  11106 mysql   10u  IPv4 2340975114      0t0  TCP *:mysql (LISTEN) 

4, 只列出使用 IPv4 的打开文件

# lsof -i 4 - For IPv4 

Example:

# lsof -i 4
COMMAND     PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
sshd        769   root    4u  IPv4 2281738846      0t0  TCP *:ssh (LISTEN)
named      8362  named   20u  IPv4 2334751017      0t0  TCP localhost.localdomain:domain (LISTEN)
named      8362  named   21u  IPv4 2334751019      0t0  TCP crybit.com:domain (LISTEN)
named      8362  named   22u  IPv4 2334751021      0t0  TCP localhost.localdomain:rndc (LISTEN)
named      8362  named  512u  IPv4 2334751016      0t0  UDP localhost.localdomain:domain 
named      8362  named  513u  IPv4 2334751018      0t0  UDP crybit.com:domain 
tcpserver  9975   root    3u  IPv4 2335487959      0t0  TCP *:pop3 (LISTEN)
tcpserver  9978   root    3u  IPv4 2335487967      0t0  TCP *:pop3s (LISTEN)
tcpserver  9983   root    3u  IPv4 2335487997      0t0  TCP *:imap (LISTEN)
tcpserver  9987   root    3u  IPv4 2335488014      0t0  TCP *:imaps (LISTEN)
xinetd    10413   root    5u  IPv4 2336070983      0t0  TCP *:ftp (LISTEN)
xinetd    10413   root    6u  IPv4 2336070984      0t0  TCP *:smtp (LISTEN)
mysqld    11106  mysql   10u  IPv4 2340975114      0t0  TCP *:mysql (LISTEN) 
# lsof -i 6 

Example:

# lsof -i 6
COMMAND   PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
sshd      769   root    3u  IPv6 2281738844      0t0  TCP *:ssh (LISTEN)
named    8362  named   23u  IPv6 2334751024      0t0  TCP localhost.localdomain:rndc (LISTEN)
httpd   29241   root    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
httpd   29241   root    6u  IPv6 2439777211      0t0  TCP *:https (LISTEN)
httpd   29243 apache    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
httpd   29243 apache    6u  IPv6 2439777211      0t0  TCP *:https (LISTEN)
httpd   29244 apache    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
httpd   29244 apache    6u  IPv6 2439777211      0t0  TCP *:https (LISTEN)
httpd   29245 apache    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
httpd   29245 apache    6u  IPv6 2439777211      0t0  TCP *:https (LISTEN)
httpd   29246 apache    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN) 

5, 列出端口在 1-1024 之间的所有进程

# lsof -i :1-1024 

Example:

# lsof -i :1-1024
COMMAND     PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
sshd        769   root    3u  IPv6 2281738844      0t0  TCP *:ssh (LISTEN)
sshd        769   root    4u  IPv4 2281738846      0t0  TCP *:ssh (LISTEN)
named      8362  named   20u  IPv4 2334751017      0t0  TCP localhost.localdomain:domain (LISTEN)
named      8362  named   21u  IPv4 2334751019      0t0  TCP crybit.com:domain (LISTEN)
named      8362  named   22u  IPv4 2334751021      0t0  TCP localhost.localdomain:rndc (LISTEN)
named      8362  named   23u  IPv6 2334751024      0t0  TCP localhost.localdomain:rndc (LISTEN)
tcpserver  9975   root    3u  IPv4 2335487959      0t0  TCP *:pop3 (LISTEN)
tcpserver  9978   root    3u  IPv4 2335487967      0t0  TCP *:pop3s (LISTEN)
tcpserver  9983   root    3u  IPv4 2335487997      0t0  TCP *:imap (LISTEN)
tcpserver  9987   root    3u  IPv4 2335488014      0t0  TCP *:imaps (LISTEN)
xinetd    10413   root    5u  IPv4 2336070983      0t0  TCP *:ftp (LISTEN)
xinetd    10413   root    6u  IPv4 2336070984      0t0  TCP *:smtp (LISTEN)
httpd     29241   root    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
httpd     29241   root    6u  IPv6 2439777211      0t0  TCP *:https (LISTEN)
httpd     29243 apache    4u  IPv6 2439777206      0t0  TCP *:http (LISTEN)
....
.... 

6, 根据进程id来列出打开的文件

# lsof -p PID 

Example:

# lsof -p 11106
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF       NODE NAME
mysqld  11106 mysql  cwd    DIR            144,233     4096  119025114 /var/lib/mysql
mysqld  11106 mysql  rtd    DIR            144,233     4096  117711421 /
mysqld  11106 mysql  txt    REG            144,233  9484782  119025094 /usr/libexec/mysqld
mysqld  11106 mysql  mem    REG               8,37           119025094 /usr/libexec/mysqld (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021850 /lib64/libnss_dns-2.5.so (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021830 /lib64/libnss_files-2.5.so (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021841 /lib64/libsepol.so.1 (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021801 /lib64/libselinux.so.1 (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021785 /lib64/libresolv-2.5.so (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119021920 /lib64/libkeyutils-1.2.so (path dev=144,233)
mysqld  11106 mysql  mem    REG               8,37           119017006 /usr/lib64/libkrb5support.so.0.1 (path dev=144,233)
....
.... 

7, 杀掉某个用户的所有活动进程

# killall -9 `lsof -t -u username` 

8, 列出某个目录中被打开的文件

# lsof +D path_of_the_directory 

Example:

# lsof +D /var/log/
COMMAND     PID   USER   FD   TYPE  DEVICE SIZE/OFF      NODE NAME
syslogd    9729   root    1w   REG 144,233        0 119019158 /var/log/kernel
syslogd    9729   root    2w   REG 144,233   350722 119021699 /var/log/messages
syslogd    9729   root    3w   REG 144,233   591577 119019159 /var/log/secure
syslogd    9729   root    4w   REG 144,233   591577 119019159 /var/log/secure 

9, 根据进程名称列出打开的文件

# lsof -c process_name 

Example:

# lsof -c ssh
COMMAND     PID USER   FD   TYPE     DEVICE SIZE/OFF    NODE NAME
sshd        483 root  cwd    DIR        8,9     4096       2 /
sshd        483 root  rtd    DIR        8,9     4096       2 /
sshd        483 root  txt    REG        8,9   523488 1193409 /usr/sbin/sshd 

10, 列出所有网络连接

# lsof -i 

该命令列出所有侦听和已建立的网络连接
Example:

# lsof -i
COMMAND     PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
sshd        769   root    3u  IPv6 2281738844      0t0  TCP *:ssh (LISTEN)
sshd        769   root    4u  IPv4 2281738846      0t0  TCP *:ssh (LISTEN)
named      8362  named   20u  IPv4 2334751017      0t0  TCP localhost.localdomain:domain (LISTEN)
named      8362  named   21u  IPv4 2334751019      0t0  TCP crybit.com:domain (LISTEN)
named      8362  named   22u  IPv4 2334751021      0t0  TCP localhost.localdomain:rndc (LISTEN)
named      8362  named   23u  IPv6 2334751024      0t0  TCP localhost.localdomain:rndc (LISTEN)
named      8362  named  512u  IPv4 2334751016      0t0  UDP localhost.localdomain:domain

就这些!

分享到:
评论

相关推荐

    linux_lsof.rar

    同时,`lsof.txt`可能是关于`lsof`的使用手册或相关文档,包含了如何运行`lsof`命令、选项解释、示例等内容,对于学习`lsof`的使用非常有帮助。 通过研究`lsof`的源码,我们可以学习到系统监控、进程管理、网络编程...

    前端开源库-lsof

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

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

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

    linux lsof命令详解.docx

    `lsof`(list open files)是一个强大的命令行工具,用于显示当前系统中所有打开的文件、网络连接和设备的情况。在Linux环境中,几乎所有东西都可以被视为文件,包括常规文件、网络连接甚至是硬件设备。`lsof`通过列...

    lsof

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

    lsof_java:明哥博客

    在`lsof_java-master`这个压缩包中,很可能包含了一些示例代码、教程或者脚本,用于演示如何结合`lsof`命令来分析Java程序。解压后,可以查看README文件或其他文档,了解具体的操作步骤和使用场景。 总之,`lsof`是...

    Linux命令行技术大全.pdf 高清带书签

    本书通过丰富的实例和详尽的解释,旨在帮助读者从初学者到熟练掌握Linux命令行,提升在Linux环境中的工作效率。高清的书签功能则使得学习过程更加条理清晰,方便快速定位和回顾关键知识点。无论是系统管理员、开发...

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

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

    嵌入式开发教程之linux进程与它的文件描述符--千锋培训

    四、文件描述符与lsof命令:`lsof`是一个强大的命令行工具,用于列出当前系统中打开的文件,包括由哪些进程打开、对应的文件描述符以及相关的详细信息。它可以用于监控系统的资源使用情况,排查问题,比如找出哪个...

    电脑软件查看进程使用的端口.rar

    3. **查看进程使用的端口**:这是一个系统管理任务,可以通过内置命令行工具或第三方软件来实现。在Windows系统中,可以使用`netstat`、`tasklist`命令,或者使用"任务管理器"的"详细信息"或"服务"选项卡。在Linux或...

    linux实例大全

    10. **系统调试**:`strace`, `lsof`, `dmesg`等用于跟踪系统调用、查找打开文件和诊断内核消息,对于故障排除非常有用。 本书通过实际案例,不仅解释了命令的使用方法,还讲解了它们在不同情境下的应用策略,使得...

    tldr-flutter:简化的手册页

    该应用程序就是这样:不断增长的最常用UNIX,Linux,macOS,SunOS和Windows命令行工具示例集。 屏幕截图 CI 去做: 在此处添加带有fastlane的travis 在相同的travis脚本中集成github版本 构建并运行 假设这是您的...

    oracle RAC查看blocking的脚本

    1. **lsof**: `lsof` 是一个Linux命令行工具,用于列出当前系统中打开文件的状态,包括进程ID、用户、进程状态、文件描述符、文件路径等。在Oracle RAC环境中,`lsof` 可用于监控数据库进程对文件(如数据文件、控制...

    linux常用脚本说明

    - `$n`:表示第 n 个命令行参数,其中 n 是一个介于 1 到 9 之间的整数。 - `$@`:表示所有命令行参数,但保留每个参数中的空格和引号。 - `$*`:表示所有命令行参数,但不保留空格和引号。 - `$$`:表示当前进程的 ...

    weblogic 12.2.1.3.0.打补丁\补丁\和opatch最新包

    本教程将详细讲解在Windows 10环境下,如何对WebLogic Server 12.2.1.3.0进行打补丁的操作流程,同时介绍补丁管理和OPatch工具的使用。 首先,我们要理解补丁和OPatch的重要性。补丁是Oracle针对WebLogic发现的问题...

    RedHat Linux安装及使用指南

    2. **终端与命令行**:通过桌面环境的“终端”应用,可以使用命令行进行系统管理。例如,`ls`列出目录内容,`cd`切换目录,`sudo`以管理员权限执行命令。 3. **软件管理**:Red Hat使用`yum`或`dnf`(取决于版本)...

    Linux常用指令总结

    `wget` 是一个强大的文件下载工具,可以在命令行中使用。基本语法如下: ```bash wget http://place.your.url/here ``` ##### 2.5 查看端口占用情况 使用 `lsof` 命令可以查看当前系统中端口的占用情况: - 查看...

    LINUX应用程序编程指南 基于s3c2410

    10. **调试工具**:学会使用gdb进行远程调试,以及strace、lsof等命令行工具,可以帮助定位和解决问题。 书中的驱动编写部分可能涉及I/O端口控制、中断处理、DMA传输、设备初始化和中断服务例程等具体内容,这些是...

    linux一句话精彩问答.pdf

    - 示例:`make bzImage -j4` 表示使用4个进程进行编译。 #### 47. 修改系统时间 **知识点**: 使用 `date` 命令来设置系统时间。 - 示例:`date -s "2023-09-01 12:00:00"` #### 48. 开机自动挂载Windows分区 **...

    Linux一句话精彩问答

    - **说明**: 使用`lsof`命令列出使用该文件的进程,进而可以删除进程。 #### 39. 安装软件 - **命令**: 使用`yum install 软件名`或`apt-get install 软件名`。 - **说明**: 使用包管理器安装软件。 #### 40. 设置...

Global site tag (gtag.js) - Google Analytics