随笔 - 6  文章 - 124  评论 - 1  阅读 - 13042

Linux pgrep 命令详解

简介

Linux 中的 pgrep 命令是一个功能强大的实用程序,用于根据名称、用户、组和其他标准搜索进程。它允许轻松地找到匹配给定模式的运行进程的进程id (pid)。该命令对于脚本或需要查找特定进程而不需要使用 ps 手动查找的管理员特别有用。

常用选项

  • -u <user>:查找特定用户拥有的进程

  • -g <group>:查找特定组中的进程

  • -P <pid>:查找给定父 PID 的子进程

  • -f <pattern>:与完整命令行进行匹配(不仅仅是进程名称)

  • -l:显示进程名称及其 PID

  • -o:仅返回第一个匹配的进程

  • -v:反向搜索(返回与模式不匹配的进程)

  • -c <name>:通过可执行命令(而不是名称)查找进程

  • -x:完全匹配(即匹配命令的全名)

  • -d <delimiter>:指定 PID 的分隔符,默认是换行符

  • -c:打印出匹配的数量

  • -i:匹配时不区分大小写

  • -n:仅选择最新的(最近启动的)匹配进程

示例用法

通过名称查找进程

要查找特定进程 (例如 bash) 的进程 ID

pgrep bash

示例输出

1234
5678

查找特定用户的进程

要查找以特定用户(例如 root)运行的进程

pgrep -u root

按名称和用户查找进程

可以组合条件。例如,要查找用户 john 拥有的 bash 进程

pgrep -u john bash

显示进程名称和 PID

默认情况下,pgrep 仅显示 PID。也可以使用 -l 选项列出进程名称

pgrep -l bash

示例输出

1234 bash
5678 bash

匹配部分名称(使用正则表达式)

此命令匹配命令行中包含字符串 apache 的进程,而不仅仅是名称中包含该字符串的进程

pgrep -f apache

通过命令行参数搜索进程

使用特定参数搜索进程(例如,使用 URL 搜索 curl 进程)

pgrep -f "curl http://example.com"

排除进程

列出除与 bash 匹配的所有进程

pgrep -v -f "bash"

按父进程 ID (PPID) 搜索

查找特定父进程的所有子进程

pgrep -P 1234

查找当前 shellPID

pgrep -P $$ 

仅返回 bash 进程的第一个匹配项

pgrep -o bash

获取特定用户组的所有进程

pgrep -g <group_name>

pgrep -g staff

搜索使用特定端口的进程

ss -ltnp | grep ':8080' | pgrep -f

要搜索使用端口 8080 的进程(通过 netstat 或 ss),再通过管道传给 pgrep

指定输出的 PID 分隔符

pgrep ssh -d' '

示例输出

1039 2257 6850 31279

正则精准匹配

pgrep '^ssh$' -l

^表示以某字符串开头,$表示以某字符串结尾
posted on   我是唐青枫  阅读(23)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示