Linux命令之pgrep用法
pgrep
用于根据进程名称或其他属性查找当前运行中的进程,并列出对应的进程ID(PID)。
补充说明
pgrep
命令通过进程名称在运行进程队列中进行查找,并返回匹配进程的PID。每个PID默认以换行符分隔。用户可以为各选项指定多个值,以逗号分隔。
语法
pgrep [选项] <进程名>
常用选项
-d, --delimiter <字符串>
:指定输出PID之间的分隔符(默认为换行符)。-l, --list-name
:同时显示PID和进程名称。-a, --list-full
:显示PID及完整命令行。-v, --inverse
:反向匹配,仅显示不符合条件的进程。-c, --count
:仅输出匹配进程的数量。-f, --full
:根据完整命令行(而非仅进程名)进行匹配。-i, --ignore-case
:忽略进程名的大小写。-n, --newest
:仅显示最新启动的进程。-o, --oldest
:仅显示最早启动的进程。-P, --parent <PPID,...>
:仅匹配指定父进程的子进程。-u, --euid <用户,...>
:按有效用户ID匹配。-U, --uid <用户,...>
:按真实用户ID匹配。-x, --exact
:精确匹配进程名(不支持模糊匹配)。-F, --pidfile <文件>
:从指定文件中读取PID。-t, --terminal <终端,...>
:根据控制终端匹配进程。
参数
进程名
:要查找的进程名称(支持正则表达式,除非使用-x
选项)。
使用示例pgrep -l nginx
精确匹配
httpd
进程,并显示完整命令行:pgrep -a -x httpd
查找由用户
www-data
运行的进程:pgrep -u www-data
统计名为
redis
的进程数量:pgrep -c redis
查找父进程PID为
1
的所有子进程:pgrep -P 1
反向匹配,列出不包含
bash
的进程:pgrep -v bash
使用逗号分隔多个PID:
pgrep -d "," sshd
注意
若未使用
-x
选项,进程名支持类似grep
的模糊匹配模式。部分选项(如
-G
,-O
,-r
等)可用于更精细的进程筛选,具体可通过man pgrep
查看完整说明。