歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

lsof命令詳解

lsof命令是什麼?

可以列出被進程所打開的文件的信息。被打開的文件可以是

1.普通的文件,2.目錄 3.網絡文件系統的文件,4.字符設備文件 5.(函數)共享庫 6.管道,命名管道 7.符號鏈接 8.底層的socket字流,網絡socket,unix域名socket 9.在linux裡面,大部分的東西都是被當做文件的…..還有其他很多

怎樣使用lsof

這裡主要用案例的形式來介紹lsof 命令的使用

1.列出所有打開的文件:

[root@web1 ~]# lsof

備注: 如果不加任何參數,就會打開所有被打開的文件,建議加上一下參數來具體定位

2. 查看誰正在使用某個文件

[root@web1 ~]# lsof /path/file

3.遞歸查看某個目錄的文件信息

[root@web1 ~]# lsof +D /path/

備注: 使用了+D,對應目錄下的所有子目錄和文件都會被列出

4. 比使用+D選項,遍歷查看某個目錄的所有文件信息 的方法

[root@web1 ~]# lsof | grep '/path/'

5. 列出某個用戶打開的文件信息

[root@web1 ~]# lsof -u username

備注: -u 選項,u其實是user的縮寫

6. 列出某個程序所打開的文件信息

[root@web1 ~]# lsof -c httpd

備注: -c 選項將會列出所有以httpd開頭的程序的文件,其實你也可以寫成 lsof | grep httpd, 但是第一種方法明顯比第二種方法要少打幾個字符了

7. 列出多個程序多打開的文件信息

[root@web1 ~]# lsof -c mysql -c httpd

8. 列出某個用戶以及某個程序所打開的文件信息

[root@web1 ~]# lsof -u test -c mysql

9. 列出除了某個用戶外的被打開的文件信息

[root@web1 ~]# lsof -u ^barlow

備注:^這個符號在用戶名之前,將會把是barlow用戶打開的進程不讓顯示

10. 通過某個進程號顯示該進行打開的文件

[root@web1 ~]# lsof -p 1866

11. 列出多個進程號對應的文件信息

[root@web1 ~]# lsof -p 123,456,789

12. 列出除了某個進程號,其他進程號所打開的文件信息

[root@web1 ~]# lsof -p ^1

Copyright © Linux教程網 All Rights Reserved