在 UNIX 中从顶部提取 PID
Extract PID from top in UNIX
我想从顶部提取所需进程和用户的 PID。因此,我可以使用此命令 top -u meh
获得持续更新的列表,但是如何从此处为用户 meh 提取 java 的 PID 并获得以下结果?
$top -u meh
34249 meh 20 0 36.7g 11.7g 2240 S 97.0 1.5 2594:00 java
36864 meh 20 0 37.7g 12.2g 2232 S 97.0 1.6 2588:58 java
33607 meh 20 0 37.9g 12.2g 2244 S 96.7 1.6 2584:22 java
17027 meh 20 0 163228 3420 1596 R 1.0 0.0 0:00.10 top
617 meh 20 0 117872 316 312 S 0.0 0.0 0:00.12 bash
1626 meh 20 0 117872 236 236 S 0.0 0.0 0:00.10 bash
2056 meh 20 0 130624 276 276 S 0.0 0.0 0:00.06 screen
2057 meh 20 0 117892 312 308 S 0.0 0.0 0:00.08 bash
3912 meh 20 0 117892 248 248 S 0.0 0.0 0:00.07 bash
4516 meh 20 0 117872 236 236 S 0.0 0.0 0:00.09 bash
7166 meh 20 0 117872 312 308 S 0.0 0.0 0:00.09 bash
结果:
34249 36864 33607
ps -aux | grep 'meh' | grep 'java' | awk '{print }'
首先使用ps
打印所有进程
首先 grep
按 meh 列出所有进程,
第二个 grep
仅列出包含 java 的那些(在前一组中)
然后它用 awk
打印第二列
编辑:
如果您不想匹配其中包含 java
关键字的其他进程,您可以告诉 ps 您要查找的程序:
ps -C java -o user,pid | grep 'meh' | awk '{print }'
这是它的基线,如果你想要特定的用户,你可以添加更多的 grep 和管道
top -p $(ps -fea|grep -i java |grep -v grep|cut -d' ' -f3 | tr '\n' ','| head --bytes -1 )
我想从顶部提取所需进程和用户的 PID。因此,我可以使用此命令 top -u meh
获得持续更新的列表,但是如何从此处为用户 meh 提取 java 的 PID 并获得以下结果?
$top -u meh
34249 meh 20 0 36.7g 11.7g 2240 S 97.0 1.5 2594:00 java
36864 meh 20 0 37.7g 12.2g 2232 S 97.0 1.6 2588:58 java
33607 meh 20 0 37.9g 12.2g 2244 S 96.7 1.6 2584:22 java
17027 meh 20 0 163228 3420 1596 R 1.0 0.0 0:00.10 top
617 meh 20 0 117872 316 312 S 0.0 0.0 0:00.12 bash
1626 meh 20 0 117872 236 236 S 0.0 0.0 0:00.10 bash
2056 meh 20 0 130624 276 276 S 0.0 0.0 0:00.06 screen
2057 meh 20 0 117892 312 308 S 0.0 0.0 0:00.08 bash
3912 meh 20 0 117892 248 248 S 0.0 0.0 0:00.07 bash
4516 meh 20 0 117872 236 236 S 0.0 0.0 0:00.09 bash
7166 meh 20 0 117872 312 308 S 0.0 0.0 0:00.09 bash
结果:
34249 36864 33607
ps -aux | grep 'meh' | grep 'java' | awk '{print }'
首先使用ps
打印所有进程
首先 grep
按 meh 列出所有进程,
第二个 grep
仅列出包含 java 的那些(在前一组中)
然后它用 awk
编辑:
如果您不想匹配其中包含 java
关键字的其他进程,您可以告诉 ps 您要查找的程序:
ps -C java -o user,pid | grep 'meh' | awk '{print }'
这是它的基线,如果你想要特定的用户,你可以添加更多的 grep 和管道
top -p $(ps -fea|grep -i java |grep -v grep|cut -d' ' -f3 | tr '\n' ','| head --bytes -1 )