我试图了解以下命令的工作原理(从这里):
<!-- language: lang-bash -->
pfiles /proc/* 2>&- |
nawk 'END {
if (f) print p
}
/^[0-9]/ {
if (f) print p, RS
p = $0
f = 0
}
/INET / {
sub(/.*INET/,"")
p = p ? p RS $0 : $0
f = 1
}'
该命令运行良好(在 SOLARIS 5.10 中)并显示进程打开的所有端口。
我知道,pfiles /proc/*
通过查询 /proc/ 文件系统显示一堆与所有进程相关的输出。从手册页:
pfiles Report fstat(2) and fcntl(2) information
for all open files in each process. In
addition, a path to the file is reported
if the information is available from
/proc/pid/path. This is not necessarily
the same name used to open the file. See
proc(4) for more information.
pfiles 的输出然后由nawk ('New Awk') 处理。
问题
- 您能否解释一下 NAWK 如何在以下命令中处理 pfiles 的输出?了解参数和均值的方式将是最有
f
帮助的p
。$0
- 在第一行中,标准错误的重定向是什么
&-
意思?这是否意味着标准错误流正在关闭?