列出打开的文件描述符
程序员文章站
2024-03-25 19:04:10
...
能用的文件描述符只有9个,可能会觉得这没什么复杂的。但有时要记住哪个文件描述符被重定向到了哪里很难。为了帮助你理清条理,bash shell提供了lsof命令。
lsof命令会列出整个Linux系统打开的所有文件描述符。这是个有争议的功能,因为它会向非系统管理员用户提供Linux系统的信息。鉴于此,许多Linux系统隐藏了该命令,这样用户就不会一不小心就发现了。
在很多Linux系统中(如Fedora),lsof命令位于/usr/sbin目录。要想以普通用户账户来运行它,必须通过全路径名来引用:
$ /usr/sbin/lsof
该命令会产生大量的输出。它会显示当前Linux系统上打开的每个文件的有关信息。这包括后台运行的所有进程以及登录到系统的任何用户。
有大量的命令行选项和参数可以用来帮助过滤lsof的输出。最常用的有-p和-d,前者允许指定进程ID(PID),后者允许指定要显示的文件描述符编号。
要想知道进程的当前PID,可以用特殊环境变量$$(shell会将它设为当前PID)。-a选项用来对其他两个选项的结果执行布尔AND运算,这会产生如下输出。
$ /usr/sbin/lsof -a -p $$ -d 0,1,2
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 3344 rich 0u CHR 136,0 2 /dev/pts/0
bash 3344 rich 1u CHR 136,0 2 /dev/pts/0
bash 3344 rich 2u CHR 136,0 2 /dev/pts/0
$
推荐阅读
-
列出打开的文件描述符
-
linux下文件描述符的介绍 博客分类: linux linux 文件描述符
-
linux下文件描述符的介绍 博客分类: linux linux 文件描述符
-
关于XAMPP配置 和 xampp-control.ini文件无法打开的问题
-
Java动态zip下载,IE8无法打开的问题(不可预料的压缩文件末端) 博客分类: HTTP zipie8contenttype
-
windows下打开超大文件的超强日志工具BareTail
-
windows下打开超大文件的超强日志工具BareTail
-
设置nginx进程可打开最大的文件数 博客分类: nginx nginx进程可打开的最大文件数反向代理
-
java简单列出文件夹下所有文件的方法
-
java简单列出文件夹下所有文件的方法