lsof命令

作者: FilesFan | 来源:发表于2019-08-05 13:54 被阅读3次

概述

之前遇到过df查看空间满了,但是du命令去看其实没有占很多容量,原因是有进程不释放空间。这个时候需要用lsof命名 lsof |grep delete去查看是哪些进程不释放空间。

常用参数

  • lsof abc.txt 显示开启文件abc.txt的进程
  • lsof -c abc 显示abc进程现在打开的文件
  • lsof -c -p 1234 列出进程号为1234的进程所打开的文件
  • lsof -g gid 显示归属gid的进程情况
  • lsof +d /usr/local/ 显示目录下被进程开启的文件
  • lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
  • lsof -d 4 显示使用fd为4的进程
  • 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 --> 端口号 (可以不止一个)

输出信息

lsof |head -n 10
COMMAND     PID   TID       USER   FD      TYPE             DEVICE    SIZE/OFF        NODE NAME
init          1             root  cwd       DIR                8,1        4096           2 /
init          1             root  rtd       DIR                8,1        4096           2 /
init          1             root  txt       REG                8,1      265848      524331 /sbin/init
init          1             root  mem       REG                8,1       43616     1841826 /lib/x86_64-linux-gnu/libnss_files-2.19.so
init          1             root  mem       REG                8,1       47760     1841814 /lib/x86_64-linux-gnu/libnss_nis-2.19.so
init          1             root  mem       REG                8,1       97296     1841830 /lib/x86_64-linux-gnu/libnsl-2.19.so
init          1             root  mem       REG                8,1       39824     1841829 /lib/x86_64-linux-gnu/libnss_compat-2.19.so
init          1             root  mem       REG                8,1      252032     1835218 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
init          1             root  mem       REG                8,1      141574     1840225 /lib/x86_64-linux-gnu/libpthread-2.19.so
sshd      63713             root   10u      CHR                5,2         0t0        1112 /dev/ptmx

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

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

这里说下FD列:
FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改,txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。
另外数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/ptmx,其文件描述符为 10。u 表示该文件被打开并处于读取/写入模式,而不是只读(r)或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。
与 FD 列相比,Type 列则比较直观。文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

相信通过以上的讲述,对lsof应该有一定的了解了。

相关文章

  • Linux查看端口占用情况

    lsof命令 格式:“lsof -i:端口号” netstat命令 格式:“netstat -tunlp | gr...

  • lsof命令的部分说明

    lsof命令详解: 1.1查看命令说明 lsof -h 1.2列出所有打开的文件 # lsof 不带任何参数运行l...

  • lsof命令

    Lsof lsof命令 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除...

  • lsof命令

    sudo lsof -nP -iTCP:端口号 -sTCP:LISTEN [blog] lsof -nP -iTC...

  • lsof命令

    概述 之前遇到过df查看空间满了,但是du命令去看其实没有占很多容量,原因是有进程不释放空间。这个时候需要用lso...

  • lsof 命令

    转载自:http://www.cnblogs.com/peida/archive/2013/02/26/29329...

  • lsof命令

    第一个进程 第二个进程 可以看到两个进程读取/root/newDir/newfile.txt文件的偏移量都不一致。

  • 【转】mac os x 查看本地网络端口情况

    查看端口是否打开 使用 netstat 命令 使用 lsof 命令 lsof命令可以列出当前的所有网络情况, 此命...

  • Linux 查看端口占用情况

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

  • Linux 查看端口占用情况

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

网友评论

    本文标题:lsof命令

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