一般lsof 会输出以下这些信息:

  COMMAND: 进程的名称

  PID:进程标识符

  PPID:父进程标识符(需要指定-R参数)

  USER:进程所有者

  PGID:进程所属组

  FD:文件描述符,应用程序通过文件描述符识别该文件。

  TYPE:文件类型。如 DIR、REG等

  DEVICE:指定磁盘的名称

  SIZE:文件的大小

  NODE:索引节点(文件在磁盘上的标识)

  NAME:打开文件的确切名称

    

  这篇重点是讲一下FD文件描述符,因为在lsof 中这个内容占了很大的一个篇幅,我又一向崇尚精简,所以把它单独拿了出来学习。

  FD:

  (1)cwd:表示 current  work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改

  (2)txt:该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init  程序

  (3)lnn: library references (AIX)

  (4)er:  FD  information  error (see  NAME  column)

  (5)jld:  jail  directory(FreeBSD)

  (6)ltx: shared  library text(code and  data)

  (7)mxx: hex  memory-mapped  type number  xx.

  (8)m86:DOS  Merge  mapped  file

  (9) mem: memory-mapped  file

  (10)mmap: memory-mapped device

  (11)pd: parent  directory

  (12)rtd: root  directory

  (13)tr: kernel  trace file (OpenBSD)

  (14)v86  VP/ix  mapped  file

  (15)0:表示标准输出

  (16)1:表示标准输入

  (17)2:表示标准错误

  一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r  w  u 等

  (1)u:表示该文件被打开并处于读取/写入模式

  (2)r:表示该文件被打开并处于只读模式

  (3)w:表示该文件被打开并处于只写入模式

  (4)空格:表示该文件的状态模式为 unknown ,且没有锁定

  (5)- : 表示该文件的状态模式为 unknown ,且被锁定

  同时在文件状态模式后面,还跟着相关的锁

  (1)N:for  a  Solaris NFS lock of  unknown  type

  (2)r: for  a   read  lock on part  of the file

  (3)R:for a read  lock on the entire  file

  (4)w: for a write lock on part of the file (文件的部分写锁)

  (5)W: for  a write  lock on the entire file(整个文件的写锁)

  (6)u: for  a read and write lock of any length

  (7)U: for a  lock of unknown type

  (8)x: for an  SCO  OpenServer  Xenix  lock on part of the file

  (9)X:for an SCO OpentServer Xenix  lock on the entire  file

  (10)space : if there is no  lock

每天一个linux命令(38)--lsof 之FD文件描述符的更多相关文章

  1. 每天一个linux命令(38)--lsof命令

    lsof (list open files )是一个列出当前系统打开文件的工具,在Linux 环境下,任何事情都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控 ...

  2. Linux的进程、线程、文件描述符是什么

    说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别. Linux 中的进程就是一个数据结构,看明白就可以理解文件描述符.重定向.管 ...

  3. N天学习一个linux命令之lsof

    用途 列出进程已打开的文件,文件可以是常规文件,特殊文件,目录,socket,设备,共享库等.如果不带参数,lsof显示所有进程打开的所有文件. 用法 lsof [ -?abChlnNOPRtUvVX ...

  4. Linux 文件描述符详解

    Overview 了解Linux怎样处理输入和输出是非常重要的.一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置.同样我们也可以更好地理解输入重定向和输出重定向. Linux ...

  5. 【转载】每天一个Linux命令

    目  录 每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdi ...

  6. Linux中文件描述符fd和文件指针flip的理解

    转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  7. Linux exec与文件描述符

    看到好几篇文章讲述exec都是一知半解,所以我尽量说的清楚明白一些.本文首先讲述Linux文件描述符,然后是exec,最后举例说明exec I/O重定向及其用法. 概念:exec命令用于调用并执行指令 ...

  8. [性能分析]linux文件描述符(转)

    1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.l ...

  9. Linux Shell 文件描述符 及 stdin stdout stderr 重定向

    Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...

随机推荐

  1. 在windows上搭建ipv6代理

    事出有因,学校每天12:00之后断网,断网之后怎么办?难道直接睡了?我不甘心.     幸好学校还是留有余地,在断网之后,还是能够上ipv6的,只是现阶段互联网对ipv6支持很不理想,怎么办?刚刚发现 ...

  2. windows批处理實例

    實例: 假設我們有個資料夾為d:\tmp和e:\tmp ,而我們只要將d:\tmp中有異動的檔案複製到e:\tmp下的話,用法如下 xcopy d:\tmp\. e:\tmp\ /D /S /Y 實例 ...

  3. Spark调优与调试

    1.使用SparkConf配置Spark (1)在java中使用SparkConf创建一个应用: SparkConf conf =;i++){ javaBean bean =new javaBean( ...

  4. mark笔记

    1.[cocos2dx]ccnode跟ccui节点混用时注意touch层级问题,基本不可控

  5. 交叉验证(cross validation)

    转自:http://www.vanjor.org/blog/2010/10/cross-validation/ 交叉验证(Cross-Validation): 有时亦称循环估计, 是一种统计学上将数据 ...

  6. C++设计模式——抽象工厂模式

    问题描述 之前讲到了C++设计模式——工厂方法模式,我们可能会想到,后期产品会越来越多了,建立的工厂也会越来越多,工厂进行了增长,工厂变的凌乱而难于管理:由于工厂方法模式创建的对象都是继承于Produ ...

  7. PWM(脉宽调制)——LED特效呼吸灯设计

    简述PWM PWM--脉宽调制信号(Pulse Width Modulation),它利用微处理器的数字输出来实现,是对模拟电路控制的一种非常有效的技术,广泛应用于测量.通信.功率控制与变化等许多领域 ...

  8. 通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问

    javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息.或者判 ...

  9. C# 连接 SQLServer 及操作

    随笔:连接: // 将tb_User表数据添加到DataGridView中 string sqlconn = "Data Source=localhost;Initial Catalog=d ...

  10. Objective-c runtime方法替换引发的死循环

    在OC中: API: class_addMethod往一个Class里添加method API: class_getInstanceMethod或class_getClassMethod可以判断某个S ...