美文网首页
linux命令之lsof

linux命令之lsof

作者: mr_franklin | 来源:发表于2017-03-09 23:53 被阅读129次

lsof是list open files的缩写。顾名思义,其作用是列出当前系统下所有打开的文件。
因为linux的一切皆文件的设计哲学,像socket,进程等,在系统中都会被视为文件

参数含义

[~]# lsof
COMMAND     PID   TID     USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1           root  cwd       DIR              253,1      4096          2 /
systemd       1           root  rtd       DIR              253,1      4096          2 /
systemd       1           root  txt       REG              253,1   1478184     397653 /usr/lib/systemd/systemd
systemd       1           root  mem       REG              253,1     20032     401603 /usr/lib64/libuuid.so.1.3.0
systemd       1           root  mem       REG              253,1    252704     401631 /usr/lib64/libblkid.so.1.1.0

每一列表示的含义分别是:

COMMAD: 命令
PID:进程id
TID:线程id
USER:用户
FD:文件描述符,比如:cwd当前工作目录;txt程序代码;0标准输入;1标准输出;2标准错误
TYPE:node类型,比如:sock即socket;DIR目录;IPv4等。
DEVICE:磁盘名
SIZE/OFF:文件大小
NODE:文件标识
NAME:文件名称

-a other-options

表示and(并且的关系)后面需跟至少1个option选项,默认是option选项的并集,加上-a后,取的是交集

-p {pid}

列出进程id为{pid}的所有文件

-d [fd][^fd]

列出所有fd列满足条件(包含或不包含[^])的文件。
比如列出不是txt类型的文件 -d ^txt。(txt表示程序代码,二进制文件或共享库)

-D {dir}

列出目录{dir}下打开的文件

+D {dir}

递归列出目录{dir}下打开的文件

-i [46][protocol][@hostname|hostaddr][:service|port]

列出满足条件的文件(与网络相关)

-u [user][^user]

列出用户打开的文件,比如 -u ^root,表示列出非root用户打开的文件

-n

显示时禁止转换成host名称,即显示ip。

-c {command}

显示通过{command}执行的进程所打开的文件

用法示例

判断端口是否处于监听状态

[~]# lsof -i :30200
COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    7970 root  264u  IPv4 73771077      0t0  TCP *:30200 (LISTEN)

使用netstat -nlp | grep :30200命令也能达到同样效果。

列出进程在访问的已删除文件

[~]# lsof +L1
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NLINK   NODE NAME
systemd-j  346 root  txt    REG  253,1   278808     0 397790 /usr/lib/systemd/systemd-journald;58a43c2a (deleted)
systemd-l  468 root  txt    REG  253,1   584560     0 397448 /usr/lib/systemd/systemd-logind;58a43c2a (deleted)
java      3374 root    4r   REG  253,1   526844     0 403168 /mnt/deploy/slave.jar (deleted)

+L[number], 会列出链接数量比number小的文件,所以+L1表示链接数量小于1,也就是没有链接的文件。

列出文件占用情况

lsof /dev/random:列出哪些进程在使用/dev/random(用于产生随机数)

相关文章

  • linux命令之lsof

    lsof是list open files的缩写。顾名思义,其作用是列出当前系统下所有打开的文件。因为linux的一...

  • Linux 查看端口占用情况

    Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 lsof lsof(list open...

  • Linux 查看端口占用情况

    Linux 查看端口占用情况可以使用lsof和netstat命令。 lsof lsof(list open fil...

  • Linux命令-lsof

    1. 前言[#1-%E5%89%8D%E8%A8%80] 2. 常用操作[#2-%E5%B8%B8%E7%94%A...

  • linux shell command整理

    1,lsof:由于linux下一切皆文件,该命令意思是列出打开的文件,因此该命令适用场景很广。 lsof--显示所...

  • Linux lsof命令详解

    lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,任...

  • Linux 命令神器:lsof

    lsof是系统管理/安全的尤伯工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists o...

  • Linux lsof命令详解

    使用示例: sudo lsof //显示系统打开的所有文件 sudo lsof | grep ossfs /...

  • Linux lsof命令[转载]

    lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的...

  • linux下lsof命令

    简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以...

网友评论

      本文标题:linux命令之lsof

      本文链接:https://www.haomeiwen.com/subject/slkobttx.html