我需要一个进程的PID给它的主人和命令。 我可以使用“ps -u xxx”和其命令“ps -Cyyy”过滤每个用户的进程,但是当我尝试“ps -u xxx -Cyyy”时,它们使用OR逻辑组合。 我需要AND逻辑。 我怎样才能做到这一点?
使用pgrep?
pgrep -U xxx yyy
它只返回pid(或者pid,如果有多个进程匹配的话)。
使用grep?
ps -u xxx | grep yyy | grep -v grep
您可以使用comm来查找两个条件共有的PID:
ps -u xxx | sort > /tmp/ps-uxxx ps -C yyy | sort > /tmp/ps-Cyyy comm -1 -2 /tmp/ps-uxxx /tmp/ps-Cyyy
使用bash,你可以使用进程replace来避免临时文件的需要:
comm -1 -2 <(ps -u xxx | sort) <(ps -C yyy | sort)