`
ssxxjjii
  • 浏览: 931297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lsof命令及用法

 
阅读更多

lsof [options] filename

如果提示没有安装lsof这个命令,CentOS可以执行:yum install lsof 安装,Debian可以执行:apt-get install lsof 安装。

lsof  filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string   显示COMMAND列中包含指定字符的进程所有打开的文件

lsof -p 进程号         查看该进程打开了哪些文件
lsof -u username  显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
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 –> 端口号 (可以不只一个)

例如: 查看22端口现在运行的情况
[root@ymhsky ~]# lsof -i :22
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
sshd     1052 root    3u  IPv6   2547       TCP *:ssh (LISTEN)
sshd    18884 root    3u  IPv6 509471       TCP ymhsky:ssh->116.22.255.162:64630 (ESTABLISHED)

 

每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:

COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称

查看端口占用情况,只是他的其中一个功能,lsof 的功能还有很多,日后有时间,再为大家介绍一下,当然,大家也可以自己去查找一下。

 

1.列出所有打开的文件:
lsof
备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
2. 查看谁正在使用某个文件
lsof /filepath/file
3.递归查看某个目录的文件信息
lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
4. 比使用+D选项,遍历查看某个目录的所有文件信息的方法
lsof | grep ‘/filepath/filepath2/’
5. 列出某个用户打开的文件信息
lsof -u username
备注: -u 选项,u其实是user的缩写
6. 列出某个程序所打开的文件信息
lsof -c mysql
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了
7. 列出多个程序多打开的文件信息
lsof -c mysql -c apache
8. 列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
9. 列出除了某个用户外的被打开的文件信息
lsof -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
10. 通过某个进程号显示该进行打开的文件
lsof -p 1
11. 列出多个进程号对应的文件信息
lsof -p 123,456,789
12. 列出除了某个进程号,其他进程号所打开的文件信息
lsof -p ^1
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
lsof -i tcp
15. 列出所有udp网络连接信息
lsof -i udp
16. 列出谁在使用某个端口
lsof -i :3306
17. 列出谁在使用某个特定的udp端口
lsof -i udp:55
特定的tcp端口
lsof -i tcp:80
18. 列出某个用户的所有活跃的网络端口
lsof -a -u test -i
19. 列出所有网络文件系统
lsof -N
20.域名socket文件
lsof -u
21.某个用户组所打开的文件信息
lsof -g 5555
22. 根据文件描述列出对应的文件信息
lsof -d description(like 2)
23. 根据文件描述范围列出文件信息
lsof -d 2-3

分享到:
评论

相关推荐

    Linux系统被入侵后使用lsof命令恢复被删除日志的方法.docx

    Linux系统被入侵后使用lsof命令恢复被删除日志的方法.docx

    Linux lsof命令使用详解

    本文将介绍 lsof 命令的基本用法,本文中 demo 的演示环境为 ubuntu 18.04。 常用选项 -a 指示其它选项之间为与的关系 -c <进程名> 输出指定进程所打开的文件 -d <文件描述符> 列出占用该文件号的进程 +d <...

    linux使用lsof命令查看文件打开情况

    前言 我们都知道,在linux下,“一切...lsof命令实用用法介绍 lsof,是list open files的简称。它的参数很多,但是我们这里只介绍一些实用的用法(注意有些情况需要root权限执行)。 查看当前打开的所有文件 一般来

    Linux磁盘空间被未知资源耗尽的解决方法

    在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。...

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

    linux 查看端口占用命令实例详解...直接用lsof命令可以查看端口使用情况! 以上就是对linux 查看端口占用命令的讲解,如有疑问请留言,或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    Linux 101 hacks (2nd)

    Geekstuff唯一一本在官网免费下载的101 hacks系列,可以说是为其他的101 hacks的经典之一。本书中的很多技巧对于初学者提高系统管理的工作效率很有帮助。...额外技巧9:Gpg 命令用法示例 额外的技巧10:Tee 命令示例

    Centos查看端口占用情况和开启端口命令详解

    Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:  lsof -i tcp:80 列出所有端口 netstat -ntlp  1、开启端口(以80端口为例)  方法一: /sbin/iptables -I INPUT -p tcp --dport 80 -j...

    killport:一个nodejs模块,以杀死任何给定端口的进程

    杀端口 一个nodejs模块,以杀死任何给定端口的进程 用法 例如,您要终止在端口8080上侦听的进程: var killport = require ( 'killport' ) ;...仅在使用lsof命令的操作系统上有效。 执照 麻省理工学院

    2款Python内存检测工具介绍和使用方法

    memory_profiler模块(与psutil一起使用)注:psutil这模块,我太喜欢了,它实现了很多Linux命令的主要功能,如:ps, top, lsof, netstat, ifconfig, who, df, kill, free 等等。示例代码...

    parse-columns-cli:解析文本列,例如unix命令的输出。 返回可以使用jq或underscore-cli之类的工具处理的JSON

    解析文本列,例如unix命令的输出。 返回可以使用或类的工具处理的JSON。 安装 $ npm install --global parse-columns-cli 用法 $ parse-columns --help Usage $ parse-columns $ echo <string> | parse-...

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

    修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...

    Linux 查看端口的占用情况并找出并杀死占用进程的方法

    1.1 命令使用示例 # 命令为 lsof -i [root@onepiece ~]# lsof -i # 将会显示 命令 + 进程ID + 进程所属用户, 以及监听的协议、状态等信息 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dhclient 728 root 6...

    Python脚本实现监听服务器的思路代码详解

    Schedule使用方法。 基本的Linux操作 Python3环境 Step1 首先我得先假设你会了如何每十五分钟去运行一次检查这件事情。(后期我会补上如何去做定时任务,相信我!) 代码量比较少,选择在Linux环境下直接写脚本。 ...

    重击

    当您需要终止进程时,例如使用flask运行Python代码并使用端口号。 运行此命令以查找进程号: 须藤lsof -i:5000 然后: 杀死任何数字 运行先前的命令 〜〜!第一个功能使上一个命令 如何搜索bash历史记录 Ctrl-R ...

    protips:节省时间的专业提示

    查找方法 加快目录导航的 Zsh 提示: CSS渐变: 使用浏览器功能 移动和浏览器测试 模拟手机屏幕(iphone / ipad) xcode 中的模拟器 为了防止您的 heroku 在工作时间睡觉: 命令 在端口 3000 上杀死 Rails ...

    Linux文件删除后空间未释放问题详解

    当系统空间使用量过大需要清理空间或者清理某个文件时,有时会出现执行了删除命令之后磁盘空间并没有释放,很多人首次遇到该情况时会比较困惑,在考虑是不是像windows系统的回收站一样,删除只是逻辑删除到回收站...

    python利用thrift服务读取hbase数据的方法

    1、首先确保hbase安装测试成功,再者确认下hbase的thrift服务是否启动,注意目前的Hbase(本文基于版本0.98.17)有两套thrift接口thrift和thrift2,本文使用thrift,启动命令:hbase thrift -p 9090 start,确保该...

    azazel:Azazel是基于Jynx rootkit的原始LD_PRELOAD技术的用户级rootkit。 它更加健壮并具有其他功能,并且主要致力于反调试和反检测。

    使用netcat与远程PTY通信不是最佳方法。 请参阅下文,以了解由编写的更好的PTY客户端,或者将socat与以下命令类似使用,然后将密码粘贴到会话中,否则socat发送第一个字符,使密码不匹配。 socat

    Linux高性能服务器编程

    13.6.4 共享内存的POSIX方法 13.6.5 共享内存实例 13.7 消息队列 13.7.1 msgget系统调用 13.7.2 msgsnd系统调用 13.7.3 msgrcv系统调用 13.7.4 msgctl系统调用 13.8 IPC命令 13.9 在进程间传递文件描述符 ...

    Loadrunner报错日志

    LoadRunner出现error问题及解决方法总结 一、Step download timeout (120 seconds) 这是一个经常会遇到的问题,解决得办法走以下步骤: 1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以...

Global site tag (gtag.js) - Google Analytics