lsof 常用命令
原文地址: Lsof 是遵从Unix 哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多。因为Unix系统中几乎所有东西都是文件,你可以想象lsof该有多有用。 如何使用lsof? 这篇文章中我会尽力列举我能想到的所有lsof的用法,让我们先从最简单的开始(或许你已经知道了),然后逐渐增加复杂度: 列出所有打开的文件 # lsof 不带任何参数运行lsof会列出所有进程打开的所有文件。 找出谁在使用某个文件 # lsof /path/to/file 只需要执行文件的路径,lsof就会列出所有使用这个文件的进程,你也可以列出多个文件,lsof会列出所有使用这些文件的进程。 你也可以一次制定多个文件: # lsof /path/to/file1 /path/to/file2 递归查找某个目录中所有打开的文件 # lsof +D /usr/lib 加上+D参数,lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢: # lsof | grep ‘/usr/lib’ 之所以慢是因为+D首先查找所有的文件,然后一次性输出。 列出某个用户打开的所有文件 # lsof -u pkrumins -u选项限定只列出所有被用户pkrumins打开的文件,你可以通过逗号指定多个用户: # lsof -u rms,root 这条命令会列出所有rms和root用户打开的文件。 你也可以像下面这样使用多个-u做同样的事情: # lsof -u rms -u root 查找某个程序打开的所有文件 # lsof -c …
