7、使用lsof查看文件信息vim
在unix裏面,一切皆文件;而Linux秉承了這一特性,將unix下的工具lsof移植過來得很成功。lsof能夠列出被進程所打開的文件的信息。bash
被打開的文件能夠是網絡
1.普通的文件socket
2.目錄 tcp
3.網絡文件系統的文件ide
4.字符設備文件 函數
5.(函數)共享庫 工具
6.管道,命名管道 url
7.符號連接spa
8.底層的socket字流。網絡socket,unix域名socket,用得比較多的用法是lsof -i:端口號,列出誰在使用某個端口,例如:lsof -i :3306,我喜歡用此用法來判斷服務到底有沒有正常啓用。
8、使用fuser查看和殺死相關進程
與lsof –i的用法相法,若是我想查找佔用3306端口的程序,則用fuser –n tcp -v 8080,另外,fuser的其它功能也是很強大的,我經常使用的它的兩個功能:查看我須要的進程和我要殺死我查到的進程(撫琴煮酒是通常用來解決device is busy的問題)
好比當你想umount光驅的時候,結果系統提示你設備正在使用或者正忙,但是你又找不到到底誰使用了他。這個時候fuser可派上用場了。
- [root@lancy sbin]# eject
- umount: /media/cdrom: device is busy
- umount: /media/cdrom: device is busy
- eject: unmount of `/media/cdrom' failed
- [root@lancy sbin]# fuser /mnt/cdrom
- /mnt/cdrom: 4561c 5382c
- [root@lancy sbin]# ps -ef |egrep '(4561|5382)' |grep -v grep
- root 4561 4227 0 20:13 pts/1 00:00:00 bash
- root 5382 4561 0 21:42 pts/1 00:00:00 vim Autorun.inf
示例中,我想彈出光驅,系統告訴我設備忙着,因而採用fuser命令,參數是你文件或scoket,fuser將查出那些使用了他。4561c,5382c表示目前用兩個進程在佔用着/mnt/cdrom,分別是4561,5382,進程ID後的字母表示佔用資源的方式。