列举打开的文件描述
语法机构: 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就是最后一个
网友评论