Linux pgrep 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 Linux 的 pgrep 命令根据进程名称或其他条件搜索正在运行的进程。pgrep 命令是一个强大的工具,可以用于多种场景,例如监控系统进程、自动化任务或排查问题。你将首先了解 pgrep 命令的用途,然后学习如何使用它按名称搜索进程,最后探索如何将 pgrep 与其他命令结合使用以实现高级进程监控。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/ProcessManagementandControlGroup -.-> linux/kill("Process Terminating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/grep -.-> lab-422855{{"Linux pgrep 命令实用示例"}} linux/kill -.-> lab-422855{{"Linux pgrep 命令实用示例"}} linux/ps -.-> lab-422855{{"Linux pgrep 命令实用示例"}} end

理解 pgrep 命令的用途

在这一步中,你将学习 Linux 中 pgrep 命令的用途和用法。pgrep 命令是一个强大的工具,允许你根据进程名称或其他条件搜索正在运行的进程。

当你需要查找正在运行的进程的进程 ID (PID) 时,pgrep 命令非常有用,尤其是在你不知道确切的进程名称或希望根据特定条件搜索进程时。这在多种场景中都非常有帮助,例如监控系统进程、自动化任务或排查问题。

让我们从探索 pgrep 命令的基本用法开始:

pgrep <process_name>

该命令将返回与指定 <process_name> 匹配的进程的 PID(s)。

示例输出:

1234
5678
9012

输出显示了与指定进程名称匹配的进程的 PID。

使用 pgrep 按名称搜索进程

在这一步中,你将学习如何使用 pgrep 命令按进程名称搜索进程。

使用 pgrep 按名称搜索进程的基本语法如下:

pgrep <process_name>

该命令将返回与指定 <process_name> 匹配的进程的 PID(s)。

你还可以结合其他选项使用 pgrep 来优化搜索。例如:

## 搜索名称以 "web" 开头的进程
pgrep -f ^web

## 搜索属于 "labex" 用户的进程
pgrep -u labex

## 搜索名称包含 "nginx" 的进程
pgrep -l nginx

-f 选项允许你根据完整的命令行(而不仅仅是进程名称)搜索进程。-u 选项可以搜索属于特定用户的进程,而 -l 选项会同时输出进程名称和 PID。

示例输出:

1234 webserver
5678 nginx
9012 webapplication

该输出显示了匹配进程的 PID 和进程名称。

结合 pgrep 与其他命令实现高级进程监控

在这最后一步中,你将学习如何将 pgrep 命令与其他 Linux 命令结合使用,以执行更高级的进程监控任务。

一个常见的用例是将 pgrepps 命令结合,以获取正在运行的进程的更多详细信息:

ps -f -p $(pgrep <process_name>)

这将显示与指定 <process_name> 匹配的进程的完整信息,包括用户、PID、父 PID、启动时间和命令。

示例输出:

UID        PID  PPID  C STIME TTY          TIME CMD
labex     1234  5678  0 10:30 pts/0    00:00:01 /usr/bin/python3 /app/webserver.py
labex     5678  9012  0 10:29 pts/0    00:00:00 nginx: master process nginx -g daemon off;
labex     9012  1234  0 10:29 pts/0    00:00:00 nginx: worker process

你还可以将 pgrep 与其他命令(如 killtop)结合使用,以更有效地管理或监控进程:

## 终止所有名称以 "web" 开头的进程
sudo kill -9 $(pgrep -f ^web)

## 监控 CPU 消耗最高的进程
top -p $(pgrep -d, <process_name>)

第一个示例使用 pgrep 查找所有名称以 "web" 开头的进程的 PID,然后使用 kill 命令终止它们。第二个示例使用 pgrep 获取与指定 <process_name> 匹配的进程的 PID,然后将它们传递给 top 命令以监控其资源使用情况。

总结

在本实验中,你学习了 Linux 中 pgrep 命令的用途和用法。pgrep 命令是一个强大的工具,允许你根据进程名称或其他条件搜索正在运行的进程,这在多种场景中都非常有帮助,例如监控系统进程、自动化任务或排查问题。你还学习了如何使用 pgrep 按进程名称搜索进程,包括使用附加选项优化搜索,例如搜索以特定名称开头的进程、属于特定用户的进程或名称中包含特定字符串的进程。

Linux 命令速查表