lsof---list open file,一个列出当前系统打开文件的工具

1.lsof查找原理

在Linux系统中,系统为了方便管理进程,会在/proc下为每一个运行中的进程创建一个目录,目录名就是进程号,而在进程的目录下有一个叫作fd的目录,这个目录下存放的是进程打开的所有文件。而lsof命令搜寻的其实就是/proc/$PID/fd下面的文件。

[root@localhost ~]# lsof
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 4096 128 /
systemd 1 root rtd DIR 253,0 4096 128 /
systemd 1 root txt REG 253,0 1214424 353923 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 61624 67175738 /usr/lib64/libnss_files-2.17.so
systemd 1 root mem REG 253,0 90632 67211369 /usr/lib64/libz.so.1.2.7
systemd 1 root mem REG 253,0 19888 67211548 /usr/lib64/libattr.so.1.1.0
systemd 1 root mem REG 253,0 115848 67175725 /usr/lib64/libnsl-2.17.so
systemd 1 root mem REG 253,0 153184 67176234 /usr/lib64/liblzma.so.5.0.99
systemd 1 root mem REG 253,0 398264 67176278 /usr/lib64/libpcre.so.1.2.0
...... # COMMAND:进程的名称,如果进程的名字很长,则这里只会显示前9个字符。
# PID:进程标识符。如果执行命令时指定-R参数,则父进程标识符PPID也会显示出来。
# USER:进程所有者。如果执行命令时指定-g参数,则进程所属组标识符PGID也会显示出来。
# FD:一般是指文件描述符。
# TYPE:文件类型,如DIR、REG等,常见的文件类型。
◇ DIR:表示目录。
◇ REG:表示普通文件。
◇ CHR:表示字符类型。
◇ BLK:块设备类型。
◇ UNIX:UNIX域套接字。
◇ FIFO:先进先出(FIFO)队列。
◇ IPv4/IPv6:网际协议(IP)套接字。
# DEVICE:磁盘的名称。
# SIZE:文件的大小。
# NODE:索引节点(文件在磁盘上的标识)。
# NAME:打开文件的确切名称。
FD:两种文件描述符 desc
第一类是文件描述符 0表示标准输入。
1表示标准输出。
2表示标准错误输出。
n表示其他文件描述符的数值
第二类的描述文件特征的标识 cwd:应用程序的当前工作目录,也是该应用程序启动的目录。
txt:该类型文件是程序代码或数据。
mem:内存映射文件。
pd:父目录。
rtd:根目录。
DEL:表示文件已经被进程删除但还在内存中存在。

2.查看谁正在使用某个文件

lsof   /filepath/file

3:查看端口被谁占用

lsof -i:port
lsof -i udp:55

4.列出某个程序打开的文件信息

lsof -c sshd

5.通过某个进程号显示该进行打开的文件

lsof -p 1

6.列出所有tcp 网络连接信息

lsof  -i tcp

7.列出某个用户打开的文件信息

lsof  -u username

lsof---列出当前系统打开的文件信息的更多相关文章

  1. 通过某个进程号显示该进行打开的文件 lsof -p 1 11. 列出多个进程号对应的文件信息 lsof -p 123,456,789 5. 列出某个用户打开的文件信息 lsof -u username

    linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用 lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录  3.网络文件系 ...

  2. Linux进程管理 lsof命令:列出进程调用或打开的文件信息

    lsof命令 通过 ps 命令查询到系统中所有的进程, 通过lsof 命令可以知道这个进程到底在调用哪些文件.lsof 命令格式如下: [root@localhost ~]# lsof [选项] 选项 ...

  3. 关于Linux系统打开最大文件数量

    今天做压力测试 客户端数据提到2000人,在这个过程中,遇到了分配socket失败的问题提示 errno:24 Too many open files查找资料后发现是Linux系统配置了打开文件的最大 ...

  4. 解决系统打开CHM文件无法正常显示

    最近学习servlet下载了一个CHM的帮助手册但是打开后右侧却时空白.试了各种方法都没有成功最后终于找到原因所在. 一般情况下无法显示网页:右键 chm文件属性里最下面有个“解除锁定”,点击“解除锁 ...

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

    lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录  3.网络文件系统的文件,4.字符设备文件  5.(函数)共享库  6.管道,命名管道 7.符号链 ...

  6. linux lsof 查看进程打开那些文件 或者 查看文件给那个进程使用

    lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录  3.网络文件系统的文件,4.字符设备文件  5.(函数)共享库  6.管道,命名管道 7.符号链 ...

  7. lsof 命令 系统管理 系统监控

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

  8. lsof命令查看端口关联的文件

    lsof命令查看端口关联的文件 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网 ...

  9. Linux 命令 - lsof: 列出打开的文件

    lsof 是一个列出当前系统打开文件的工具. 命令格式 lsof  [  -?abChlnNOPRstUvVX  ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ + ...

随机推荐

  1. pi币--π币--手机离线式挖矿软件--pi中文教程!

    Pi Network派型网络,国外热度很高手机移动式挖矿软件 一个新出的手机移动式挖矿软件,在国外热度很高,国内玩的人目前很少.项目团队成员均来自斯坦福大学,三个创始人斯坦福博士教授,现在处于挖矿第一 ...

  2. OpenWrt下如何配置网络?

    答: 使用uci进行配置,示例如下: uci get network.wan.ifname (笔者得到eth1) uci set network.wan.ifname=ethx (如: uci set ...

  3. Springboot整合 mybatis-generator

    1.pom.xml文件中 生成依赖 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId ...

  4. Javah提示未找到 ..的类

    Javah相关错误,如下图所示:

  5. Grafana添加Zabbix为数据源(一)

    最前面,此博文引自:http://docs.grafana-zabbix.org/installation/configuration-sql/ 使用zabbix来收集书籍,用grafana来显示数据 ...

  6. [PySpark] Spark SQL on a large file

    基础篇:[Spark] 03 - Spark SQL /* implement */

  7. unieap 导出文档错误

    java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalCon ...

  8. centos7搭建伪分布式集群

    centos7搭建伪分布式集群 需要 centos7虚拟机一台: jdk-linux安装包一个 hadoop-2.x安装包1个(推荐2.7.x) 一.设置虚拟机网络为静态IP(最好设成静态,为之后编程 ...

  9. keepalived脑裂问题

    一.对脑裂的理解 在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体.动作协调的HA系统,就分裂成为2个独立的个体.由于相互失去了联系,都以为是对方出了故障.两个节点上的HA软件像 ...

  10. openstack——Rabbitmq集群部署

    一.前期准备 1.条件:准备3台Linux系统虚拟机,保持系统版本一致,确保配置好yum源,及网络源     2.3台虚拟机做静态解析 [root@yun1 ~]# cat /etc/hosts 12 ...