欢迎访问linux宝典,请记住本站唯一域名:www.linuxbaodian.com

lsof命令

来源:原创    更新时间:2018-08-25 23:34:17    作者:管理员    浏览:4315
  • 命令描述
lsof(list open file)是一个查看当前系统文件的工具。在linux环境下,一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。

  • 命令语法
lsof [选项] [参数]
  • 命令选项
-a 列出打开文件存在的进程

-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
-h 显示帮助信息
-v 显示版本信息
  • 命令参数
lsof打开的文件类型有:
1,普通文件
2,目录
3,网络文件系统的文件
4,字符或设备文件
5,(函数)共享库
6,管道,命名管道
7,符号链接
8,网络文件(例如:NFS_file,网络socket)
9,等其他类型的文件
  • 命令实例

实例1:不加任何参数,列出当前系统总所有调用的文件信息

[root@LornBlood ~]# lsof | head -10 |column -t 
COMMAND  PID  USER  FD   TYPE  DEVICE  SIZE/OFF  NODE    NAME
init                 1    root   cwd   DIR    8,3      4096      2          /
init                 1    root   rtd    DIR    8,3      4096      2          /
init                 1    root   txt    REG    8,3     150353    792227     /sbin/init
init                 1    root   mem  REG    8,3     66432      915759  /lib64/libnss_files-2.12.so
lsof            22211  root   mem  REG    8,3     159312    921647     /lib64/ld-2.12.so
...............................................................................
lsof            22211  root   4r    FIFO   0,8       0t0       2410515    pipe
lsof            22211  root   7w   FIFO   0,8       0t0       2410516     pipe
每一列对应的信息:
COMMAND:进程的名称
PID:进程标识符(进程的PID)
PPID:进程父进程的PID(需要指定-R选项)
USER:进程的所有者
PGID:进程的所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。
       1)cwd:表示current work dirctory,即:应用程序当前的工作目录,这是该应用程序启动的目录
       2)txt:该类型的文件时程序代码,如应用程序二进制文件本身或共享库,如/sbin/init程序
       3)lnn:library references (AIX);
4)er:FD information error (see NAME column);
5)jld:jail directory (FreeBSD);
6)ltx:shared library text (code and data);
7)mxx :hex memory-mapped type number xx.
8)m86:DOS Merge mapped file;
9)mem:memory-mapped file;
10)mmap:memory-mapped device;
11)pd:parent directory;
12)rtd:root directory;
13)tr:kernel trace file (OpenBSD);
14)v86  VP/ix mapped file;
       15)0:标准输入
       16)1:标准输出
       17)2:标准错误
一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r、w、u等
       1)u:表示该文件被打开并处于读取/写入模式
       2)r:表示该文件被打开并处于只读模式
       3)w:表示该文件被打开并处于编辑模式
       4)空格:表示该文件的状态为unknow,且没有被锁定
       5)-:表示该文件的状态为unknow,且被锁定
TYPE:文件类型
       1)DIR:目录
       2)CHR:字符设备
       3)BLK:块设备
       4)UNIX:UNIX域套接字
       5)FIFO:先进先出(FIFO)队列
       6)IPv4:网络协议(IP)套接字
DEVICE:指定磁盘的名称
SIZE:文件大小
NODE:索引节点(inode号)
NAME:打开文件的确切名称

实例2:  -a 列出打开文件存在的进程

[root@LornBlood ~]# lsof -a /var/log/messages
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd 22037 root    1w   REG    8,3      653 130895 /var/log/messages

实例3:  -c 列出指定进程所打开的文件

[root@LornBlood ~]# lsof -c rsyslogd
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF       NODE NAME
rsyslogd 22037 root  cwd    DIR                8,3     4096          2 /
rsyslogd 22037 root  rtd    DIR                8,3     4096          2 /
rsyslogd 22037 root  txt    REG                8,3   391360     790250 /sbin/rsyslogd

实例4:  -i 列出符合条件的进程(协议,端口,ip)

[root@LornBlood ~]# lsof -i :22
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     9854 root    3u  IPv4   42831      0t0  TCP *:ssh (LISTEN)
sshd     9854 root    4u  IPv6   42833      0t0  TCP *:ssh (LISTEN)



上一条命令:mkfs

下一条命令:df

笔记分享

表情

共0条分享记录
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

最受欢迎

猜你喜欢

最受争议