手机版
你好,游客 登录 注册
背景:
阅读新闻

lsof命令 - 找出谁在Linux中使用文件

[日期:2019-04-01] 来源:Linux公社  作者:醉落红尘 [字体: ]

在本文中,我们将解释如何在Linux中找出使用特定文件的用户。这将帮助您了解使用打开文件的系统用户或进程。

我们可以使用lsof命令来了解是否有人正在使用文件,如果有人,则是谁在使用。 它在搜索打开文件时读取内核内存,并帮助您列出所有打开的文件。 在这种情况下,打开的文件可以是常规文件,目录,块特殊文件,字符特殊文件,流,网络文件等等 - 因为在Linux中,一切都是文件。

Lsof用于文件系统,以识别谁正在使用该文件系统上的所有文件。 您可以在Linux文件系统上运行lsof命令,输出使用该文件标识进程的所有者和进程信息,如以下输出所示。

linuxidc@linuxidc:~/linuxidc.com$ lsof /dev/null
COMMAND    PID    USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
systemd  2263 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
dbus-daem 2293 linuxidc    0u  CHR    1,3      0t0    6 /dev/null
gnome-ses 2297 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
at-spi-bu 2396 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
dbus-daem 2401 linuxidc    0u  CHR    1,3      0t0    6 /dev/null
at-spi2-r 2404 linuxidc    0u  CHR    1,3      0t0    6 /dev/null
gnome-she 2421 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
gvfsd    2427 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
gvfsd-fus 2432 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
pulseaudi 2444 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
pulseaudi 2444 linuxidc    1w  CHR    1,3      0t0    6 /dev/null
pulseaudi 2444 linuxidc    2w  CHR    1,3      0t0    6 /dev/null
ibus-daem 2457 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
ibus-dcon 2461 linuxidc    0r  CHR    1,3      0t0    6 /dev/null
......

lsof命令 - 找出谁在Linux中使用文件

要列出特定的用户已打开文件,请运行以下命令,将实际用户名替换linuxidc。

linuxidc@linuxidc:~/linuxidc.com$ lsof -u linuxidc -t

lsof的另一个重要用途是找出侦听特定端口的进程。 例如,使用以下命令标识侦听端口80的进程。

linuxidc@linuxidc:~/linuxidc.com$ sudo lsof -i TCP:80
[sudo] linuxidc 的密码:
COMMAND PID    USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
nginx  948    root    6u  IPv4  42296      0t0  TCP *:http (LISTEN)
nginx  948    root    7u  IPv6  42297      0t0  TCP *:http (LISTEN)
nginx  949 www-data    6u  IPv4  42296      0t0  TCP *:http (LISTEN)
nginx  949 www-data    7u  IPv6  42297      0t0  TCP *:http (LISTEN)

lsof命令 - 找出谁在Linux中使用文件

注意:由于lsof在搜索打开文件时读取内核内存,因此内核内存的快速更改可能会导致不可预测的输出。 这是使用lsof命令的主要缺点之一。

有关更多信息,请查看lsof手册页:

linuxidc@linuxidc:~/linuxidc.com$ man lsof

lsof命令 - 找出谁在Linux中使用文件

就这样! 在本文中,我们已经解释了如何知道谁在Linux中使用特定文件。 我们已经展示了如何使用打开的文件识别进程的所有者和进程信息。 如果您有任何问题或意见,请使用下面的留言与我们联系。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-04/157869.htm

linux
相关资讯       Linux lsof  lsof命令  lsof 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款