`

linux lsof 命令参数详解(查看进程打开的文件)

 
阅读更多

转自:http://blog.chinaunix.net/uid-20731447-id-1883741.html

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

参数:

-a     列出打开文件存在的进程
-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情

-h 显示帮助信息
-v 显示版本信息

总结一下lsof指令的用法:

lsof abc.txt 显示开启文件abc.txt的进程

lsof -i :22 知道22端口现在运行什么程序

lsof -c abc 显示abc进程现在打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /usr/local/ 显示目录下被进程开启的文件

lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

lsof -d 4 显示使用fd为4的进程

lsof -i 用以显示符合条件的进程情况

语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4位置

service --> /etc/service中的 service name (可以不只一个)

port --> 端口号 (可以不只一个)

例子: TCP:25 - TCP and port 25

@1.2.3.4 - Internet IPv4 host address 1.2.3.4

tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp

lsof -n 不将IP转换为hostname,缺省是不加上-n参数

例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n

lsof -p 12 看进程号为12的进程打开了哪些文件

lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新

-r,lsof会永远不断的执行,直到收到中断信号

+r,lsof会一直执行,直到没有档案被显示

例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r

lsof -s 列出打开文件的大小,如果没有大小,则留下空白

lsof -u username 以UID,列出打开的文件

 

一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”

我总结一下lsof指令的用法:

lsof abc.txt 显示开启文件abc.txt的进程

lsof -i :22 知道22端口现在运行什么程序

lsof -c abc 显示abc进程现在打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /usr/local/ 显示目录下被进程开启的文件

lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

lsof -d 4 显示使用fd为4的进程

lsof -i 用以显示符合条件的进程情况

语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4位置

service --> /etc/service中的 service name (可以不只一个)

port --> 端口号 (可以不只一个)

例子: TCP:25 - TCP and port 25

@1.2.3.4 - Internet IPv4 host address 1.2.3.4

tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp

lsof -n 不将IP转换为hostname,缺省是不加上-n参数

例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n

lsof -p 12 看进程号为12的进程打开了哪些文件

lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新

-r,lsof会永远不断的执行,直到收到中断信号

+r,lsof会一直执行,直到没有档案被显示

 

例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r

lsof -s 列出打开文件的大小,如果没有大小,则留下空白

lsof -u username 以UID,列出打开的文件

分享到:
评论

相关推荐

    linux lsof命令详解.docx

    在终端中执行 `lsof` 命令时,如果没有指定特定的参数,那么它将显示系统中所有进程打开的所有文件。输出结果通常包含以下列: - **COMMAND**:显示进程的命令名。 - **PID**:进程ID。 - **USER**:进程所有者的...

    linux lsof命令详解及实例

    **Linux lsof命令详解** lsof是一个强大的系统监控工具,它能列出当前系统中所有正在被进程打开的文件。在Linux系统中,一切皆为文件,包括网络连接、硬件设备等。lsof通过文件描述符来跟踪这些资源,帮助用户了解...

    linux的最大进程句柄数设置

    要知道当前进程打开了多少个文件句柄,可以使用以下命令: lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more 这将显示当前进程打开的文件句柄数量和进程号。然后,可以使用 ps 命令来获取进程的...

    lsof-4.87-6.el7.x86_64.rpm

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

    Linux下查看进程打开的文件句柄数和如何修改方法

    ### Linux下查看与修改进程打开的文件句柄数详解 #### 一、引言 在Linux环境下,了解和管理进程打开的文件句柄数是非常重要的。文件句柄数的限制直接影响到应用程序能同时处理的文件数量,特别是对于那些需要处理...

    150个常用Linux命令

    ### Linux基础命令详解 随着Linux系统的广泛应用,掌握其基本命令对于任何从事IT行业的人来说变得尤为重要。本文将基于“150个常用Linux命令”的内容,详细介绍其中的关键知识点,特别是那些对于初学者而言至关重要...

    Linux常用命令大全

    - `lsof`:列出打开文件的进程。 8. **文本处理** - `sed`:流编辑器,用于替换、删除、插入文本。 - `awk`:强大的文本分析工具,处理结构化数据。 - `cut`/`paste`/`sort`/`uniq`:文本操作命令。 以上只是...

    Linux高级配置详解

    以下是对"Linux高级配置详解"这一主题的深入探讨: 1. **系统管理**: - **文件系统管理**:了解EXT2、EXT3、EXT4、XFS、Btrfs等文件系统的特性,并能进行挂载、卸载、检查和修复。 - **用户与组管理**:掌握`...

    linux 查看端口占用命令实例详解

    你可以直接运行 `lsof -i :端口号` 来查看特定端口被哪些进程占用,或者不带任何参数直接运行 `lsof`,然后根据输出信息筛选出你需要的端口信息。如果想查看所有TCP或UDP连接,可以分别使用 `lsof -i TCP` 或 `lsof ...

    linux常用命令

    - **描述**: `lsof`命令可以显示当前打开的文件,这里结合`-i`参数和端口号来查看特定端口是否被占用。 #### 20. 清除屏幕显示的信息 - **命令**: `clear` - **描述**: `clear`命令用于清除终端屏幕上的所有输出。 ...

    Linux性能测试工具

    此外,`strace`和`lsof`用于追踪系统调用和打开文件,帮助我们理解进程的行为。 `sysstat`套件包含了`sar`,它能记录和报告系统的长期性能数据。`pidstat`则关注单个进程的资源使用情况。对于网络性能,`netstat`...

    linux下查看端口是否被占用以及查看所有端口

    #### 常用参数详解 `netstat`命令提供了许多选项来定制输出,以下是常用的参数: - `-a (all)`:显示所有连接,包括监听中的和服务已启动但没有活动的连接。 - `-t (tcp)`:仅显示TCP连接信息。 - `-u (udp)`:仅...

    linux学习资料

    其他命令如`ln`、`diff`、`date`、`cal`、`grep`、`wc`、`ps`、`watch`、`at`和`crontab`等,分别用于文件链接创建、差异比较、时间日期设置、日历查看、文本搜索、统计、进程查看和定时任务设置。 Linux命令繁多,...

    Linux命令全称,包括SQL等等

    ### Linux命令全称详解 #### 一、基本概念与背景 Linux系统作为一款开源免费的操作系统,被广泛应用于服务器和个人电脑领域。对于Linux用户来说,掌握各种命令是必不可少的技能之一。本文将根据给定的文件信息,...

    Linux运维工程师笔试题

    在Linux系统中,可以使用`lsof`命令来查看当前打开的文件列表,包括动态链接库等。 **命令格式**: ```sh lsof ``` **示例**: ```sh lsof ``` 这将列出所有进程打开的文件。 #### 六、Ext4文件系统如何恢复rm命令...

    tomcat在linux上的部署命令

    ### Tomcat 在 Linux 上的部署命令详解 #### 一、Tomcat 启动与停止命令 **1. 启动 Tomcat** - **命令格式:** \[sh\] /path/to/tomcatX/bin/catalina.sh start - **示例:** ```bash sh /opt/tomcat6/bin/...

Global site tag (gtag.js) - Google Analytics