返回顶部
首页 > 资讯 > 操作系统 >Linux中的lsof命令怎么用
  • 327
分享到

Linux中的lsof命令怎么用

2023-06-28 17:06:35 327人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关linux中的lsof命令怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。lsof 命令是 Linux 系统的扩展工具,它的含义是 list opened filed

这期内容当中小编将会给大家带来有关linux中的lsof命令怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

lsof 命令是 Linux 系统的扩展工具,它的含义是 list opened filedesciptor (列出已经打开的文件描述符),在 Linux 系统中,所有的与资源句柄相关的东西都可以统一抽象成文件描述符(filedescriptor,简称 fd)。一个文件句柄是一个 fd,一个 Socket 对象也可以称之为 fd 等等。
默认情况下,系统是不存在这个命令的,你需要安装一下,使用如下命令安装:

yum install lsof

我们来看一下这个命令的使用效果:

COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       node NAMEsystemd       1          root  cwd       DIR              202,1      4096          2 /nscd        453   469    nscd    8u  netlink                          0t0      11017 ROUTEnscd        453   470    nscd  cwd       DIR              202,1      4096          2 /nscd        453   470    nscd  rtd       DIR              202,1      4096          2 /nscd        453   470    nscd  txt       REG              202,1    180272     146455 /usr/sbin/nscdnscd        453   470    nscd  mem       REG              202,1    217032     401548 /var/db/nscd/hostsnscd        453   470    nscd  mem       REG              202,1     90664     132818 /usr/lib64/libz.so.1.2.7nscd        453   470    nscd  mem       REG              202,1     68192     133155 /usr/lib64/libbz2.so.1.0.6nscd        453   470    nscd  mem       REG              202,1    153192     133002 /usr/lib64/liblzma.so.5.0.99nscd        453   470    nscd  mem       REG              202,1     91496     133088 nscd        453   471    nscd    5u  a_inode                0,9         0       4796 [eventpoll]nscd        453   471    nscd    6r      REG              202,1    217032     401548 /var/db/nscd/hostsnscd        453   471    nscd    7u     unix 0xffff880037497440       0t0      11015 /var/run/nscd/socketnscd        453   471    nscd    8u  netlink                          0t0      11017 ROUTEimgserver   611       zhangyl  cwd       DIR              202,1      4096    1059054 /home/zhangyl/flaminGoserverimgserver   611       zhangyl  rtd       DIR              202,1      4096          2 /imgserver   611       zhangyl  txt       REG              202,1   4788917    1057044 /home/zhangyl/flamingoserver/imgserverimgserver   611       zhangyl   24u  a_inode                0,9         0       4796 [eventfd]imgserver   611       zhangyl   25u     IPv4           55707643       0t0        tcp *:commtact-Http (LISTEN)imgserver   611       zhangyl   26r      CHR                1,3       0t0       4800 /dev/nullimgserver   611   613 zhangyl   32w      REG              202,1    131072    2754609 /home/zhangyl/flamingoserver/imGCache/258bfb8945288a117d98d440986d7a03

结果显示中列出了各个进程打开的各种 fd 类型,对于 Uinx Socket,lsof 命令会显示出其详细的路径,打开的文件 fd 亦是如此。

使用 lsof 命令有三点需要注意:

  • 默认情况下,lsof 的输出比较多,我们可以使用 grep 命令过滤我们想要查看的进程打开的 fd 信息,如:

    lsof -i | grep myapp

    或者使用 lsof -p pid 也能过滤出指定的进程打开的 fd 信息:

    [root@iZ238vnojlyZ ~]# lsof -p 26621COMMAND     PID    USER   FD      TYPE   DEVICE SIZE/OFF    NODE NAMEchatserve 26621 zhangyl  cwd       DIR    202,1     4096 1059054 /home/zhangyl/flamingoserverchatserve 26621 zhangyl  rtd       DIR    202,1     4096       2 /chatserve 26621 zhangyl  txt       REG    202,1  8027035 1051942 /home/zhangyl/flamingoserver/chatserverchatserve 26621 zhangyl  mem       REG    202,1    61928  141417 /usr/lib64/libnss_files-2.17.sochatserve 26621 zhangyl  mem       REG    202,1    44096  143235 /usr/lib64/librt-2.17.sochatserve 26621 zhangyl  mem       REG    202,1    19520  137064 /usr/lib64/libdl-2.17.sochatserve 26621 zhangyl  mem       REG    202,1  2112384  132824 /usr/lib64/libc-2.17.sochatserve 26621 zhangyl  mem       REG    202,1   142304  132850 /usr/lib64/libpthread-2.17.sochatserve 26621 zhangyl  mem       REG    202,1    88720  135291 /usr/lib64/libgcc_s-4.8.5-20150702.so.1chatserve 26621 zhangyl  mem       REG    202,1  1141560  137077 /usr/lib64/libm-2.17.sochatserve 26621 zhangyl  mem       REG    202,1   999944  140059 /usr/lib64/libstdc++.so.6.0.19chatserve 26621 zhangyl  mem       REG    202,1  9879756  269001 /usr/lib64/mysql/libMysqlclient.so.20.3.4chatserve 26621 zhangyl  mem       REG    202,1   164440  133622 /usr/lib64/ld-2.17.sochatserve 26621 zhangyl    0u      CHR      1,3      0t0    4800 /dev/nullchatserve 26621 zhangyl    1u      CHR      1,3      0t0    4800 /dev/nullchatserve 26621 zhangyl    2u      CHR      1,3      0t0    4800 /dev/nullchatserve 26621 zhangyl    3u  a_inode      0,9        0    4796 [eventpoll]chatserve 26621 zhangyl    4u  a_inode      0,9        0    4796 [timerfd]chatserve 26621 zhangyl    5u  a_inode      0,9        0    4796 [eventfd]chatserve 26621 zhangyl    7u  a_inode      0,9        0    4796 [eventpoll]
  • lsof 命令只能查看到当前用户有权限查看到的进程 fd 信息,对于其没有权限的进程,最右边一列会显示 “Permission denied”。如下所示:

    sshd      26759          root  cwd   unknown                              /proc/26759/cwd (readlink: Permission denied)sshd      26759          root  rtd   unknown                              /proc/26759/root (readlink: Permission denied)sshd      26759          root  txt   unknown                              /proc/26759/exe (readlink: Permission denied)sshd      26759          root NOFD                                        /proc/26759/fd (opendir: Permission denied)bash      26761          root  cwd   unknown                              /proc/26761/cwd (readlink: Permission denied)bash      26761          root  rtd   unknown                              /proc/26761/root (readlink: Permission denied)bash      26761          root  txt   unknown                              /proc/26761/exe (readlink: Permission denied)bash      26761          root NOFD                                        /proc/26761/fd (opendir: Permission denied)
  • lsof 命令第一栏进程名在显示的时候,默认显示前 n 个字符,这样如果我们需要显示完整的进程名以方便过滤的话,可以使用 +c 选项。用法如下:

    #最左侧的程序名最大显示 15 个字符[zhangyl@iZ238vnojlyZ ~]$ lsof +c 15

    当然,如果你设置值太大, lsof 便不会采用你设置的最大值,而是使用默认最大值。

上文也介绍了,socket 也是一种 fd,如果需要仅显示系统的网络连接信息,使用的是 -i 选项即可,这个选项可以形象地显示出系统当前的出入连接情况:
Linux中的lsof命令怎么用

看到图中的连接方向了吧?

当然,和 netstat 命令一样,lsof -i 默认也会显示 ip 地址和端口号的别名,我们只要使用 -n-P 选项就能相对应地显示 ip 地址和端口号了,综合起来就是 lsof -Pni
Linux中的lsof命令怎么用

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

上述就是小编为大家分享的Linux中的lsof命令怎么用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux中的lsof命令怎么用

本文链接: https://lsjlt.com/news/320985.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux中的lsof命令怎么用
    这期内容当中小编将会给大家带来有关Linux中的lsof命令怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。lsof 命令是 Linux 系统的扩展工具,它的含义是 list opened filed...
    99+
    2023-06-28
  • lsof 命令怎么在Linux中使用
    lsof 命令怎么在Linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下...
    99+
    2023-06-13
  • Linux系统中lsof命令怎么用
    这篇文章主要介绍Linux系统中lsof命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!lsof是一个查看进程打开的文件的工具, linux 系统一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接...
    99+
    2023-06-28
  • Linux中lsof命令有什么用
    这篇文章主要为大家展示了“Linux中lsof命令有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中lsof命令有什么用”这篇文章吧。Linux常用命令lsof命令 用于查看你进...
    99+
    2023-06-28
  • Linux系统lsof命令怎么用
    这篇文章主要介绍了Linux系统lsof命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。lsof是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件...
    99+
    2023-06-28
  • lsof命令怎么用
    这篇文章将为大家详细讲解有关lsof命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一:lsof介绍lsof 是 linux 下的一...
    99+
    2024-04-02
  • linux中lsof命令的使用方法
    这期内容当中小编将会给大家带来有关linux中lsof命令的使用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。lsof(list open files)是一个列出当前系统打开文件的工具。在linux环...
    99+
    2023-06-09
  • Linux命令详解(15)lsof命令
    lsof 是 linux 下的一个非常实用的系统级的监控、诊断工具。它是 List Open Files的缩写。 使用 lsof,你可以获取任何被打开文件的各种信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身...
    99+
    2023-09-02
    服务器 运维 lsof
  • 如何在Linux中使用lsof命令
    这期内容当中小编将会给大家带来有关如何在Linux中使用lsof命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.命令格式:lsof [参数][文件]2.命令功能:用于查看你进程开打的文件,...
    99+
    2023-06-13
  • 在Linux系统中使用lsof命令
    这篇文章主要讲解了“在Linux系统中使用lsof命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中使用lsof命令”吧!lsof是系统管理/安全的尤伯工具。我大多数时候用...
    99+
    2023-06-13
  • Linux lsof命令使用详解
    lsof(list open files)是一个查看进程打开的文件的工具。 在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目...
    99+
    2022-06-04
    Linux lsof命令 Linux lsof
  • Linux中怎么利用Lsof命令恢复误删文件
    Linux中怎么利用Lsof命令恢复误删文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原理:在Linux系统的/proc 分区下保存着进程的目录和名字,包含fd(文件描...
    99+
    2023-06-13
  • Linux系统lsof命令的使用方法
    Linux系统lsof命令的使用方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux系统中lsof命令是用于列出当前系统打开文件的工具,是一个非常方便的命令。lsof命...
    99+
    2023-06-28
  • linux lsof命令详解及实例
    linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络...
    99+
    2022-06-04
    详解 实例 命令
  • Linux系统下如何使用lsof命令
    本篇内容主要讲解“Linux系统下如何使用lsof命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下如何使用lsof命令”吧!lsof命令简介:lsof(list open fi...
    99+
    2023-06-12
  • 如何使用lsof命令
    这篇文章将为大家详细讲解有关如何使用lsof命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。lsof是系统管理/安全的尤伯工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists...
    99+
    2023-06-27
  • Linux命令中的rpm命令怎么用
    这篇文章的内容主要围绕Linux命令中的rpm命令怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在Linux中,RPM是进行软件得安装、卸载、...
    99+
    2023-06-28
  • Linux如何利用lsof命令恢复删除的文件
    这篇文章主要介绍Linux如何利用lsof命令恢复删除的文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!lsof命令lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复...
    99+
    2023-06-16
  • Linux下Lsof命令的安装及基础操作
    这篇文章主要讲解了“Linux下Lsof命令的安装及基础操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下Lsof命令的安装及基础操作”吧!安装lsof 命令默认是没有安装的,而...
    99+
    2023-06-15
  • linux使用lsof命令查看文件打开情况
    前言 我们都知道,在linux下,“一切皆文件”,因此有时候查看文件的打开情况,就显得格外重要,而这里有一个命令能够在这件事上很好的帮助我们-它就是lsof。 linux下有哪些文件 在介绍lsof命令之前,先简单说...
    99+
    2022-06-04
    linux lsof命令 linux之lsof命令 linux查看文件打开
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作