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. 深入解析 composer 的自动加载原理

    PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演 ...

  2. Flume-Exec Source 监控单个本地文件

    实时监控,并上传到 HDFS 中. 一.Flume 要想将数据输出到 HDFS,须持有 Hadoop 相关 jar 包 若 Hadoop 环境和 Flume 在同一节点,那么只要配置 Hadoop 环 ...

  3. koa 项目打包(使用webpack打包koa2 框架app)

    关键问题 一:所有node_modules里的模块都不进行打包 webpack的核心功能是将引用的各个模块打到一个文件里,并会将各种规范的模块进行统一的模块化处理(webpack规范). 然而node ...

  4. POJ 1789 -- Truck History(Prim)

     POJ 1789 -- Truck History Prim求分母的最小.即求最小生成树 #include<iostream> #include<cstring> #incl ...

  5. http2.0多路复用

    http/1中的每个请求都会建立一个单独的连接,除了在每次建立连接过程中的三次握手之外,还存在TCP的慢启动导致的传输速度低.其实大部分的http请求传送的数据都很小,就导致每一次请求基本上都没有达到 ...

  6. C++ STL——输入输出流

    [TOC] 注:原创不易,转载请务必注明原作者和出处,感谢支持! 注:内容来自某培训课程,不一定完全正确! 一 缓冲区 (1)标准输入:从键盘输入数据到程序(input) (2)标准输出:程序数据输出 ...

  7. vscode在软件内部查看html渲染效果的插件

    使用方法: Usage press 'F1' and type "Show Live Server Preview" F1,然后输入Show Live Server Preview ...

  8. Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例

    Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 ...

  9. centos6 安装docker

    docker 安装要求内核大于3.10 , 而centos6 机器上内核一般是2.6 , 除了升级内核外, 还可以安装低版本的docker , 本文介绍docker 1.7的安装. 机器 环境 [ro ...

  10. Servlet(1):基础概念/最简实例

    Servlet 生命周期(1) init()方法初始化Servlet对象  它在第一次创建Servlet时被调用,在后续每次不同用户请求时不再调用.(2) service()方法来处理客户端的请求  ...