可以列出被進程所打開的文件的信息。被打開的文件可以是
1.普通的文件,2.目錄 3.網絡文件系統的文件,4.字符設備文件 5.(函數)共享庫 6.管道,命名管道 7.符號鏈接 8.底層的socket字流,網絡socket,unix域名socket 9.在linux裡面,大部分的東西都是被當做文件的…..還有其他很多
這裡主要用案例的形式來介紹lsof 命令的使用
[root@web1 ~]# lsof
備注: 如果不加任何參數,就會打開所有被打開的文件,建議加上一下參數來具體定位
[root@web1 ~]# lsof /path/file
[root@web1 ~]# lsof +D /path/
備注: 使用了+D,對應目錄下的所有子目錄和文件都會被列出
[root@web1 ~]# lsof | grep '/path/'
[root@web1 ~]# lsof -u username
備注: -u 選項,u其實是user的縮寫
[root@web1 ~]# lsof -c httpd
備注: -c 選項將會列出所有以httpd開頭的程序的文件,其實你也可以寫成 lsof | grep httpd, 但是第一種方法明顯比第二種方法要少打幾個字符了
[root@web1 ~]# lsof -c mysql -c httpd
[root@web1 ~]# lsof -u test -c mysql
[root@web1 ~]# lsof -u ^barlow
備注:^這個符號在用戶名之前,將會把是barlow用戶打開的進程不讓顯示
[root@web1 ~]# lsof -p 1866
[root@web1 ~]# lsof -p 123,456,789
[root@web1 ~]# lsof -p ^1