fuser命令输出进程ID提取
fuser command output process ID extraction
尝试从 fuser 输出中提取使用给定端口号的进程 ID,如下所示
$ fuser 9092/tcp
9092/tcp: 5920
没有使用 awk 提取 PID
$ fuser 9092/tcp | awk -F: '{print }'
9092/tcp:
从提取的 PID 中,我想 ls -l /proc/5920/exe
像
ls -l /proc/$(fuser 9092/tcp | awk -F: '{print }')/exe
二进制版本如下:
bash --version # GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
fuser --version # fuser (PSmisc) 22.20
fuser
输出的非正式部分转到标准错误。标准输出的输出已经是 computer-readable。 (这是一个功能,不是错误。)
通常,如果您认为标准错误无用或分散注意力,您可以重定向标准错误以摆脱 stderr 输出。
$ fuser 9092/tcp 2>/dev/null
5920
您可以通过管道轻松地为自己建立它,例如至 nl
$ fuser 9092/tcp | nl
9092/tcp:
1 5920
请注意 9092/tcp:
输出如何没有获得行号——它没有被传送到 nl
。
因此您的实际代码可能如下所示
ls -l /proc/$(fuser 9092/tcp 2>/dev/null)/exe
(虽然通常 don't use ls
in scripts.
尝试从 fuser 输出中提取使用给定端口号的进程 ID,如下所示
$ fuser 9092/tcp
9092/tcp: 5920
没有使用 awk 提取 PID
$ fuser 9092/tcp | awk -F: '{print }'
9092/tcp:
从提取的 PID 中,我想 ls -l /proc/5920/exe
像
ls -l /proc/$(fuser 9092/tcp | awk -F: '{print }')/exe
二进制版本如下:
bash --version # GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
fuser --version # fuser (PSmisc) 22.20
fuser
输出的非正式部分转到标准错误。标准输出的输出已经是 computer-readable。 (这是一个功能,不是错误。)
通常,如果您认为标准错误无用或分散注意力,您可以重定向标准错误以摆脱 stderr 输出。
$ fuser 9092/tcp 2>/dev/null
5920
您可以通过管道轻松地为自己建立它,例如至 nl
$ fuser 9092/tcp | nl
9092/tcp:
1 5920
请注意 9092/tcp:
输出如何没有获得行号——它没有被传送到 nl
。
因此您的实际代码可能如下所示
ls -l /proc/$(fuser 9092/tcp 2>/dev/null)/exe
(虽然通常 don't use ls
in scripts.