Unix/命令/设备指南
外观
fuser 会告诉你哪个进程正在使用指示的文件系统对象(普通文件、设备等)。
$ fuser /dev/dsp /dev/dsp: 8369
链接
lsof 列出所有打开的文件,比 fuser 更详细。
例子
$ lsof /dev/dsp COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME mplayer 8406 alex 7w CHR 14,3 389 /dev/sound/dsp
提示
使用 -i 4 选项将报告当前正在使用 IPv4 网络的所有程序,这对于观察访问网络和互联网资源的程序很有用。
$ lsof -i 4 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME btdownloa 2618 arky 3u IPv4 9524 TCP *:6886 (LISTEN) btdownloa 2618 arky 6u IPv4 9544 TCP dsl-KK-229.53.101.203.ttel.net:1539->cpc1-leed3-3-0-cust10.ldst.cable.ntl.com:59074 (ESTABLISHED)
链接
fstat 列出所有打开的文件。
前两个命令 (fuser 和 lsof) 并非所有系统都存在。4.3BSD-Tahoe 系统引入了在许多 *BSD 系统上都可以找到的 "fstat" 命令。与前两个命令不同,它似乎不知道每个文件的准确路径,只知道它位于哪个文件系统?
一些选项是
-p PROCESSID show open files of this process -u USERNAME show open files of this user
示例:列出每个用户(包括 root!)打开的所有文件。将其管道输出到分页程序。
$ fstat | less
获取正在运行的 Bourne shell 的进程 ID,然后列出它打开的文件。
$ echo $$ 5283 $ fstat -p 5283 USER CMD PID FD MOUNT INUM MODE R/W DV|SZ ...
init 进程的 ID 始终为 1。列出它打开的文件。在本例中,它只在 / 文件系统上的某个地方打开了一个文件。
$ fstat -v -p 1 USER CMD PID FD MOUNT INUM MODE R/W DV|SZ root init 1 wd / 2 drwxr-xr-x r 512
链接
- fstat, freebsd.org