lsof - 调试输出信息

lsof - 调试输出信息

我正在浏览这个网站的问题。在特别的问题,我看到命令 lsof 用于列出为特定用户打开的文件。我在终端中运行了以下命令。

lsof -a -u root -d txt

我看到一个很长的输出,这完全不相关(至少对我来说)。我发现很难理解产生的输出。这是

mapping-d  3992 root txt       REG    8,5    29728 7169187 /usr/libexec/mapping-daemon
clock-app  4005 root txt       REG    8,5    88048 7169216 /usr/libexec/clock-applet
mixer_app  4007 root txt       REG    8,5    53484 7169197 /usr/libexec/mixer_applet2
gnome-scr  4078 root txt       REG    8,5   168628 1337742 /usr/bin/gnome-screensaver
notificat  4081 root txt       REG    8,5    34732 1324168 /usr/libexec/notification-daemon
gnome-ter  4219 root txt       REG    8,5   309400 1318348 /usr/bin/gnome-terminal
gnome-pty  4221 root txt       REG    8,5    12384 1899888 /usr/lib/vte/gnome-pty-helper
bash       4222 root txt       REG    8,5   735932  196459 /bin/bash
firefox   15551 root txt       REG    8,5   121288 2424613 /usr/lib/firefox/firefox
npviewer. 15790 root txt       REG    8,5   174364 1996912 /usr/lib/nspluginwrapper/npviewer.bin
bash      15908 root txt       REG    8,5   735932  196459 /bin/bash
lsof      16014 root txt       REG    8,5   129820 1323233 /usr/sbin/lsof
lsof      16015 root txt       REG    8,5   129820 1323233 /usr/sbin/lsof

我期待着,如果我打开了一个TXT文件为用户,如果我运行,则仅显示该文件的信息拉索夫命令。有人可以帮助我理解这个命令实际产生的输出是什么吗?

答案1

输出被组织成列。如果您想将此输出存储在文件中以便稍后查看,只需执行以下操作:

$ lsof -a -u root -d txt > somefile.txt

这些列就位于顶部。

COMMAND     PID USER  FD      TYPE DEVICE SIZE/OFF    NODE NAME

列说明

各列如下:

COMMAND     PID USER  FD      TYPE DEVICE SIZE/OFF    NODE NAME
mapping-d  3992 root txt       REG    8,5    29728 7169187 /usr/libexec/mapping-daemon
clock-app  4005 root txt       REG    8,5    88048 7169216 /usr/libexec/clock-applet
mixer_app  4007 root txt       REG    8,5    53484 7169197 /usr/libexec/mixer_applet2
  • 命令- 这是正在使用文件的可执行文件的名称。

  • PID- 进程ID,这是可执行文件的进程ID。您也会在命令的输出中看到这些ps

  • 用户- 这是该进程所拥有的用户 ID。

  • FD- 文件描述符。您指定只需要文本文件描述符 ( -d txt),因此您应该只txt在此列中看到。从lsof“txt程序文本(代码和数据);”的手册页中

  • 类型- 这表示与文件关联的节点类型。再次查阅 的手册页lsof。有很多不同类型的节点。在这里,我们主要处理常规文件,因此您会看到关键字REG

  • 设备- 此列包含设备编号。这些是系统目录中用于特定文件的相应设备/dev

  • 尺寸/关闭- 文件大小或文件偏移量(以字节为单位)。

  • 节点- 查阅手册页lsof,一般是本地文件的节点号,或者服务器主机中NFS文件的inode号,但也可以是其他值。

  • 姓名- 文件名或文件所在的安装点和文件系统的名称。

答案2

lsof列出程序以某种方式访问​​的所有文件。第四列 ( FD) 描述程序访问文件的方式。以下是一些常见情况(还有其他情况):

  • 一个数字:文件被进程打开,数字就是文件描述符。文件名后面的字母表示打开模式(例如r只读、w只写、u两者)。
  • cwd:该文件是进程的当前工作目录。
  • txt:该文件是进程的可执行文件。
  • mem:文件被映射到进程的虚拟内存空间。

描述符类型txt与包含人类可读文本或以 . 结尾的名称的“文本文件”无关.txt。这里的“文本”是一个奇怪的术语,指的是可执行代码,如文本段可执行文件的一部分,它是包含代码的部分。这个奇怪的名字来自一个现已不复存在的编程社区,其早于 Unix(通用电气,其在 Unix 世界中的另一个命名遗产是“GECOS领域”)。

因此,您看到的是每个进程的主要可执行文件。

相关内容