列举打开文件描述

列举打开的文件描述
语法机构: lsof命令 ,非管理员也可以采用这个命令查看系统信息;
命令路径: /usr/sbin/lsof
执行例子:
xiaojie@bogon Desktop $ /usr/sbin/lsof -a -p$$ -d 0,1,2
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    1659 xiaojie    0u   CHR   16,2   0t9814  681 /dev/ttys002
bash    1659 xiaojie    1u   CHR   16,2   0t9814  681 /dev/ttys002
bash    1659 xiaojie    2u   CHR   16,2   0t9814  681 /dev/ttys002
命令分析:
/usr/sbin/lsof -> 表示lsof命令
"-a"    表示将两个选项结果进行(AND操作)拼接(然后格式化输出)
"-p"    进程ID
"$$" -> 表示环境变量
"-d" -> 表示文件描述符
结果分析:
"COMMAND"    表示正在运行的命令(取出前9个字符)
"PID"        进程ID
"USER"       进程所属登录名(登录用户) 例如:管理员,成员
"FD"         文件描述符以及访问类型(r表示读, w表示写, u表示读写)
"TYPE"       表示文件类型(CHR: 表示字符型, BLK表示块型, DIR表示目录,REG表示文件)
"DEVICE"     表示设备
"SIZE/OFF"   如果存在,表示文件大小
"NODE"       表示本地节点号
"NAME"       表示文件名(文件路径)

脚本实例:
#!/bin/bash
exec 3>temp.sh
/usr/sbin/lsof -a -p$$ -d 0,1,2,3
结果:
xiaojie@bogon Desktop $ ./sh.sh 
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    2491 xiaojie    0u   CHR   16,2  0t10481      681 /dev/ttys002
bash    2491 xiaojie    1u   CHR   16,2  0t10481      681 /dev/ttys002
bash    2491 xiaojie    2u   CHR   16,2  0t10481      681 /dev/ttys002
bash    2491 xiaojie    3w   REG    1,4        0 23975752 /Users/xiaojie/Desktop/temp.sh

说明: 3就是最后一个

你可能感兴趣的:(列举打开文件描述)