lsof命令

标签: ToolKits Unix/Linux 命令 | 发表时间:2012-03-03 21:16 | 作者:dutor
出处:http://www.dutor.net

  lsof, LiSt Opened Files, 列出打开的文件, 听起来很简单的样子. 但想*nix中很多其他工具一样, lsof把这件简单的事情做到了炉火纯青. 因为Unix认为”一切皆文件”, 那么”打开的文件”就不仅仅是传统意义上打开的文件了, 还可以是网络/Unix域套接字, 匿名/具名管道, 共享库文件, 目录文件, 设备文件等等. 很多场景下, 查看进程或系统打开的文件会给调试带来极大的帮助. 下面简单地介绍lsof常被使用的功能选项.

  • lsof : 简单地执行lsof会列出当前系统中所有被打开的文件, 但为了看到完整的信息, 通常需要具有root权限;
  • lsof -u dutor : 列出用户dutor打开的文件, 可指定多个用户, 默认是OR的关系;
  • lsof -c tair : 列出名称以tair开头的进程打开的文件, c for command, 可指定多个;
  • lsof -c /^t.*r$/ : 列出名称以t开头, r结尾的进程打开的文件;
  • lsof -p 12315 : 列出进程号为12315的进程打开的文件, 可指定多个;
  • lsof server.log : 列出打开server.log文件的进程, 可指明多个文件;
  • lsof . : 列出打开当前目录的进程;
  • lsof +D . : 递归地列出当前目录中被打开的文件, 当然也可以lsof | grep `pwd`;
  • lsof -i : 列出打开的套接字;
  • lsof -i tcp : 列出打开的tcp套接字;
  • lsof -i :5198 : 列出打开5198端口的进程;
  • lsof -i :ssh : 列出打开22端口的进程;
  • lsof -i tcp:5198 : 列出打开5198号tcp端口的进程;
  • lsof -U : 列出打开Unix域套接字的进程;
  • lsof -d 0-2 : 列出在0到2文件描述符上打开文件的进程;
  • lsof -d mem : 列出打开映射文件的进程;
  • lsof -d txt : 列出打开的可执行文件.

  还有其他一些非常有用的选项, 可以对lsof的行为进行控制.

  • lsof -a: 上述功能性选项可以组合使用, 但默认采用OR逻辑列出, -a选项令lsof使用AND逻辑;
  • lsof -t: 只列出进程号, 可以借此得到特定的进程列表, 以方便对这些进程的自动处理, 比如kill `lsof -t -i :5198`会杀死所有打开5198端口的进程;
  • lsof -r [seconds]: -r选项可以让lsof以一定的时间间隔连续执行, 在监视文件/进程时会非常实用.

  这只是一个实用的不完全选项的罗列, 如果你知道其他非常实用的选项, 还望留言分享之.

祝好

相关 [lsof 命令] 推荐:

lsof命令

- - Dutor
  lsof, LiSt Opened Files, 列出打开的文件, 听起来很简单的样子. 但想*nix中很多其他工具一样, lsof把这件简单的事情做到了炉火纯青. 因为Unix认为”一切皆文件”, 那么”打开的文件”就不仅仅是传统意义上打开的文件了, 还可以是网络/Unix域套接字, 匿名/具名管道, 共享库文件, 目录文件, 设备文件等等.

@lsof命令小节@

- - CSDN博客推荐文章
卸载移动存储时经常提示device busy,也可能误删了一个正在打开的文件.      lsof(list open files)是一个列出当前系统打开文件的工具. 在linux环境下,任何事物都以 文件的形式存在,通过文件不仅仅可以访问 常规数据,还可以访问 网络连接和硬件. 所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口.

<转>lsof命令的几个妙用

- - 操作系统 - ITeye博客
原链: http://xjsunjie.blog.51cto.com/999372/1255661. lsof(list open files)是一个列出当前系统打开文件的工具. 在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 可以被打开的文件可以是:1.普通的文件,2.目录  3.网络文件系统的文件,4.字符设备文件  5.(函数)共享库  6.管道,命名管道 7.符号链接 8.底层的socket字流,网络socket,unix域名........还有其他很多.

Unix调试的瑞士军刀:lsof

- Ran - 黑客志
这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀. Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息. 打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多.

Unix 调试的瑞士军刀:lsof

- 加州旅客 - Wow! Ubuntu
本文转载自黑客志 (这是一个多人协作的群体Blog,旨在为国内开发者提供新鲜和高质量的黑客文章,文章主要来源为 Hacker News. 原文地址:Unix调试的瑞士军刀:lsof / 原作者: @Yuanyi Zhang. 这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么 lsof 就是 Unix 调试的瑞士军刀.

Unix调试的瑞士军刀:lsof

- paul - FeedzShare
来自: 黑客志 - FeedzShare  . 发布时间:2011年06月20日,  已有 2 人推荐. 这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀. Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息.

使用 lsof 監看本機 某個Port 的 對外連線狀況

- - Tsung's Blog
使用 lsof (list open files) 來看某個 Port 的 Connection 狀態, 並且查看此 Port 是被哪支程式佔住了.. 註1: netstat 也可以作類似的事情, 但是 lsof 更簡單易懂些.. 註2: 主要用此可以查看, 是否有哪些連線是你意想不到的. 使用 lsof 監看本機對外連線指令參數.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.

sqlite3命令

- - 移动开发 - ITeye博客
转载自: http://www.cnblogs.com/frankliiu-java/archive/2010/05/18/1738144.html. SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令. 本文档提供一个样使用sqlite3的简要说明.

Linux iostat命令

- - CSDN博客系统运维推荐文章
iostat用于输出CPU和磁盘I/O相关的统计信息. . iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [. iostat各个参数说明:. -c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥.