一个列出当前系统打开文件的工具,在linux环境下,任何事物都已文件的形式存在,因为lsof是一个功能比较强大的工具!

版本:lsof_4.82_src

编译方法:

1. clean
./Configure -clean

2. configure 
LSOF_VERS=31000 LSOF_AR=arm-hisiv300-linux-ar LSOF_CC=arm-hisiv300-linux-gcc LSOF_INCLUDE=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/usr/include LSOF_ARCH=arm ./Configure linux

注:LSOF_VERS内核版本号,组合方法见00XCONFIG文档;

全部按回车配置就OK

arm-hisiv300-linux为使用的交叉编译器

3. 修改根目录Makefile
CFGL=    -L./lib -llsof 
to
CFGL=    -L./lib -llsof -static

4. 修改lib/Makefile
AR=     arm-hisiv200-linux-ar ${LIB} ${OBJ}
to
AR=     arm-hisiv200-linux-ar cr ${LIB} ${OBJ}

5. 编译
make

6. objectfile
lsof

使用方法:

1、查看lsof所有命令 lsof -h/?,显示如下:
lsof 4.82
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
  -?|-h list help          -a AND selections (OR)     -b avoid kernel blocks
  -c c  cmd c ^c /c/[bix]  +c w  COMMAND width (9)     
  +d s  dir s files        -d s  select by FD set     +D D  dir D tree *SLOW?*
                           -i select IPv[46] files    -l list UID numbers
  -n no host names         -N select NFS files        -o list file offset
  -O avoid overhead *RISK  -P no port names           -R list paRent PID
  -s list file size        -t terse listing           -T disable TCP/TPI info
  -U select Unix socket    -v list version info       -V verbose search
  +|-w  Warnings (+)       -X skip TCP&UDP* files     -- end option scan
  +f|-f  +filesystem or -file names     +|-f[gG] flaGs 
  -F [f] select fields; -F? for help  
  +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
                                        +m [m] use|create mount supplement
  +|-M   portMap registration (-)       -o o   o 0t offset digits (8)
  -p s   exclude(^)|select PIDs         -S [t] t second stat timeout (15)
  -T qs TCP/TPI Q,St (s) info
  -g [s] exclude(^)|select and print process group IDs
  -i i   select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
  +|-r [t] repeat every t seconds (15);  + until no files, - forever.
  -s p:s  exclude(^)|select protocol (p = TCP|UDP) states by name(s).
  -u s   exclude(^)|select login|UID set s
  -x [fl] cross over +d|+D File systems or symbolic Links
  names  select named files or files on named file systems

2、常见使用案例
(1)lsof <filename> 
文件被哪些进程打开

(2)lsof <目录>
该目录下的文件被哪些进程打开(注:目录选取不合理显示不出来)

(3)lsof -i<4/6>
显示所有打开socket的进程,括号参数显示ipv4或ipv6的信息

(4)lsof -i tcp/udp:<portnum>
显示该协议端口对应的所有进程

(5)lsof -p <pid,pid> 或者 -c <进程名字或名字部分-c Challenge -c Ch >
显示该进程打开的所有打开文件

(6)lsof -N
显示通过NFS登陆所打开的所有文件

(7)lsof -S 5 or lsof -bw or lsof -n

嵌入式工具——lsof相关推荐

  1. 嵌入式工具 | 几款实用的C/C++在线编译器

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 作为程序员,使用编译器是必备技能,但是从入门到放弃,基本上就是在开发环境安装.配置这 ...

  2. 嵌入式工具移植之-wireless tools工具的移植和使用

    前言:本文主要讲解了wirless tools的概念和如何移植wireless tools,以及如何使用wireless tools中的工具设置无线网络. 一.wireless tools概念 Wir ...

  3. linux 版本二进制编辑工具bless(嵌入式工具集合)

    1.ubuntu安装二进制编辑工具替代UltraEdit软件,安装很简单 直接:sudo  apt-get   install   bless 2.软件界面 3.软件使用 1)可以直接删除二进制文件中 ...

  4. 嵌入式工具库 -- 脱机离线下载器(STM32F103C8T6)

    目录 前言 脱机下载器资料获取 关注微信公众号 -- 星之援工作室 发送关键字(脱机下载器) 原理图: PCB 3D效果 正面 反面 实物图 主要代码展示 main.c 演示视频 USB文件(自己使用 ...

  5. 嵌入式开发用到的一些工具

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 为了方便大家平时公交.地铁.外出办事也能用手机回顾查看文章,我精心整理了该专栏教程: ...

  6. 十四种Java开发工具点评

    图形界面的java开发工具 JDK Borland 的JBuilder ,JDeveloper,VisualAge for Java jcreater. 常见的十五种Java开发工具的特点 1.JDK ...

  7. arm 交叉编译找不到so_嵌入式杂谈之交叉编译

    这次扯一下嵌入式开发过程中经常用到的交叉编译器,虽说在之前的文章也提到过这个问题,不过上次是着重介绍为什么使用交叉编译器(主要是为了劝服自己从单片机的思想中脱离出来,慢慢的接受嵌入式Linux开发的一 ...

  8. Linux命令简单操作之lsof

    lsof lsof(list open files)是一个列出当前系统打开文件的工具 lsof语法格式: lsof [options] filename lsof常用命令: lsof -p pid 列 ...

  9. 嵌入式操作系统内核原理和开发

    嵌入式操作系统内核原理和开发(开篇) 操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的windows系统已经开始运行了.如果问大家操作系统是什么?可能有的人会 ...

  10. 嵌入式操作系统内核原理和开发(开篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的wi ...

最新文章

  1. python 使用 redis expire属性设置访问时间间隔
  2. Android之关于Intent的Flag属性的讲解
  3. chrome 历史版本_2020 年最后一次更新,Chrome 性能大提升的新版本来了
  4. java函数式 new_java8简单入门--函数式接口 @FunctionalInterface
  5. springboot启动不打印日志信息_SpringBoot日志操作【全局异常捕获消息处理--日志控制台输出+日志文件记录】...
  6. 回溯法解整数的划分问题(C语言)
  7. ThinkPHP6项目基操(17.实战部分 Filesystem文件上传)
  8. memcache 缓存的批量删除方案(转)
  9. webpack 打包第三方库_Webpack 打包第三方代码库
  10. 简便无刷新文件上传系统
  11. 腾讯再出新招!社交新产品“有记”已上线?
  12. Java位运算符:Java移位运算符、复合位赋值运算符及位逻辑运算符
  13. IM即时通讯聊天软件1.0
  14. 第三方android 模拟器哪个好用吗,安卓模拟器哪个好 哪个电脑安卓模拟器好用...
  15. CDH6.0.1环境Hadoop集群性能测试
  16. 关于 Flash Builder
  17. 极限类题之积分上限的函数的极限
  18. 一个C++的21点(BlackJack)游戏
  19. 果园机器人作文开头_果园机器人300字作文4篇
  20. 远程升级怕截胡?详解FOTA安全升级

热门文章

  1. python一切皆对象的理解
  2. 为什么使用nginx反向代理
  3. @PathVariable获取带点参数,获取不全
  4. 区分.net、c#、asp.net三者间的关系
  5. iOS 使用pods报错问题 pod --version
  6. 2015上海网络赛 HDU 5475 An easy problem 线段树
  7. Kafka 设计与原理详解(二)
  8. .NET基础拾遗(1)类型语法基础和内存管理基础
  9. Codeforces Round #364 (Div. 1) 700B(树)
  10. leetcode Largest Rectangle in Histogram 单调栈