Linux 中的 Pgrep 命令

2023-11-05

本文涵盖了 Linux 的基础知识pgrep命令。

pgrep是一个命令行实用程序,允许您根据给定条件查找正在运行的程序的进程 ID。它可以是完整或部分进程名称、运行进程的用户或其他属性。

The pgrep命令是的一部分procps (or procps-ng) 软件包,几乎所有 Linux 发行版都预安装了该软件包。

如何使用pgrep命令#

语法为pgrep命令如下:

pgrep [OPTIONS] <PATTERN>

配套的<PATTERN>使用扩展正则表达式指定。

当没有任何选项调用时,pgrep显示与给定名称匹配的所有正在运行的程序的 PID。例如,要查找 SSH 服务器的 PID,您可以运行:

pgrep ssh

如果有名称与“ssh”匹配的正在运行的进程,它们的PID将显示在屏幕上。如果未找到匹配项,则输出为空。

1039
2257
6850
31279

命令返回0当至少一个正在运行的进程与请求的名称匹配时。否则,退出代码 is 1。这在编写 shell 脚本时很有用。

如果您想向匹配的进程发送信号,请使用pkill。该命令是一个包装器pkill,并使用相同的选项和模式匹配。

pgrep在换行符上打印每个匹配的进程 ID。这-d选项允许您指定不同的分隔符。例如,如果您想使用空格作为分隔符,请输入:

pgrep ssh -d' '
1039 2257 6850 31279

The -l选项告诉pgrep显示进程名称及其 ID:

pgrep ssh -l

pgrep使用正则表达式执行搜索操作,并列出名称中包含“ssh”的所有进程:

1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

如果您只想匹配名称与搜索模式完全相同的进程,您可以使用:

pgrep '^ssh$' -l
6850 ssh
插入符号 (^) 字符匹配字符串的开头,以及美元$在最后。

默认情况下,pgrep仅与进程名称匹配。什么时候-f选项用于命令与完整参数列表匹配。

pgrep -f ssh

Use the -u选项告诉pgrep显示给定用户正在运行的进程:

pgrep -u root

要指定多个用户,请用逗号分隔他们的名称:

pgrep -u root,mark

您还可以组合选项和搜索模式。例如,要打印在用户“mark”下运行且名称中包含“gnome”的所有进程及其名称,您可以输入:

pgrep -l -u mark gnome

要仅显示最近(最旧)或最近(最新)启动的进程,请使用-n(最新)或-o(对于最旧的)选项。

例如,要查找用户“mark”启动的最新进程,您可以输入:

pgrep -lnu mark

正如您从上面的示例中看到的,您还可以组合选项,选项之间不带空格,只需一个破折号。

要反转匹配,即仅显示不符合给定条件的进程,请使用-v选项。以下命令将打印所有未由用户“mark”运行的进程:

pgrep -v -u mark

The -c选项告诉pgrep仅打印匹配进程的计数。例如,要查找以用户“mark”运行的进程,请输入:

pgrep -c -u mark

结论#

The pgrep命令用于根据不同的标准找出正在运行的程序的PID。

欲了解更多信息pgrep命令,访问pgrep 人页面或类型man pgrep在您的终端中。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的 Pgrep 命令 的相关文章

  • 将终端颜色扩展到行尾

    我有一个生成 motd 的 bash 脚本 问题取决于某些终端设置 我不确定颜色是否会延伸到行尾 其他时候则不然 e g v s IIRC 一个只是普通的 gnome 终端 另一个是我的 tmux 术语 所以我的问题是如何才能将其扩展到 8
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • 在Python中通过sys.stdout写入unicode字符串

    暂时假设一个人无法使用print 从而享受自动编码检测的好处 所以这给我们留下了sys stdout 然而 sys stdout太蠢了不做任何合理的编码 http bugs python org issue4947 现在人们阅读 Pytho
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 如何在 Mac 上设置默认 shell,例如钓鱼? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不喜欢重新输入fish每次我启动终端时 我想Fish https en wikipedia org wiki Fish Unix she
  • 如何将环境变量 PACKAGE_DIRS 链接到我的本地私有包?

    我正在尝试设置一个环境变量 以便当我正在处理 Meteor 应用程序时 并且我想将本地私有包链接到我的项目 Meteor 将查找我在本地环境中创建的包目录 我做的第一件事是创建一个包目录并向其中添加一个基本的测试包 Users scotty
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 从 Xcode 中的存储库中删除未引用的图像

    我从资源文件夹中删除了 default png 因为我想要为加载屏幕使用不同的图像 但我只是删除了引用 这显然是一件愚蠢的事情 我将新图像拖到资源中并尝试将名称更改为 Default png 但它不允许我这样做 我认为这是因为第一个 Def
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • Linux 仅使用时间/日期戳重命名文件

    我有一个文件 我想将 mv 重命名为year month day h m s 最好的方法是什么 我已尝试以下操作 但它不会动态添加正确的标记 原始文件名称中实际上有一个反斜杠 mv getnw myfilename txt Y m d H
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • RVM 无法通过 SSH 工作(作为一项功能)

    我刚刚在 Debian 6 服务器上安装了 RVM 一开始没有任何问题 但是 在一切设置完成后 我无法在终端中运行 RVM 我打字时收到的消息rvm use is RVM is not a function selecting rubies
  • 安装 homebrew 后终端无法识别 nvm

    我通过自制软件安装了 nvm 但是当我运行 nvm v 或 nvm version 表单终端时 我收到消息 command not found nvm 当我查看 finder 和 cmd shift 时 我可以看到 nvm 文件夹 最初 我
  • 如何通过双击使该 file.sh 可执行?

    首先我用的是Mac 接下来 我需要执行这个 file sh 我们将调用它 每次我需要执行它时 我都必须打开终端并输入 cd Users Jacob Documents folderWithFileInIt bash file sh 这没关系
  • 从终端在 MAC 操作系统上安装 dmg 包

    我想通过终端在我的 MAC 操作系统中安装 dmg java 包 我尝试使用这个命令 sudo installer package jdk 7u51 macos x64 dmg target 但我收到此错误 installer Error
  • 如何在 Unix 控制台或 Mac 终端中编译和运行 C/C++ 代码?

    如何在 Unix 控制台或 Mac 终端中编译 运行 C 或 C 代码 如果是一个简单的单源程序 make foo 源文件在哪里foo c foo cpp等等 你甚至不需要 makefile Make 有足够的内置规则将源文件构建为同名的可
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 带闭包的默认属性值使编译器重新编译所有文件

    This source https developer apple com library content documentation Swift Conceptual Swift Programming Language Initiali
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 找不到 gcloud 命令 - 安装 Google Cloud SDK

    我正在尝试在终端中使用以下命令在 Mac 上安装 Google Cloud SDK curl https sdk cloud google com bash 它工作得很好 但是当我进入下一步时 gcloud init 我得到以下内容 bas

随机推荐

  • 如何在 Ubuntu 和 Debian 上设置 Squid 代理服务器

    如果您正在寻找一种增强 Debian 服务器安全性和性能的方法 那么设置 Squid 代理服务器可能是一个不错的选择 Squid 是一种广泛使用的开源代理服务器 提供缓存 过滤和身份验证等各种功能 在本文中 我们将讨论在 Ubuntu 和基
  • 如何在 CentOS 8 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 本文介绍了在 CentOS 8 上安装和配置 VNC 服务器的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 先决条件 要遵循
  • Linux 中的日期命令

    在本教程中 我们将介绍以下基础知识date命令 The date命令显示或设置系统日期 它最常用于以不同格式打印日期和时间以及计算未来和过去的日期 使用Linuxdate命令 语法为date命令如下 date OPTION FORMAT 要
  • 如何在 CentOS 8 上安装 OpenCV

    OpenCV 开源计算机视觉库 是一个开源计算机视觉库 绑定了 C Python 和 Java 并支持所有主要操作系统 它可以利用多核处理并具有 GPU 加速功能来实现实时操作 OpenCV 的应用非常广泛 包括医学图像分析 拼接街景图像
  • 如何在 Linux 中设置和列出环境变量

    在基于 Linux 和 Unix 的系统中 环境变量是一组动态命名值 存储在系统中 供在 shell 或子 shell 中启动的应用程序使用 简而言之 环境变量是具有名称和关联值的变量 环境变量允许您自定义系统的工作方式以及系统上应用程序的
  • 如何在 Debian 10 上安装 Gradle

    Gradle 是一个强大而灵活的构建工具 主要用于 Java 项目 结合了 Ant 和Maven 与使用 XML 进行脚本编写的前辈不同 Gradle 使用Groovy 一种动态的 面向对象的编程语言 用于 Java 平台定义项目和构建脚本
  • 如何在 Linux、Windows 和 macOS 上编辑 Hosts 文件

    Hosts 文件用于将域名 主机名 映射到 IP 地址 它是所有操作系统 包括 Linux Windows 和 macOS 都使用的纯文本文件 主机文件的优先级高于 DNS 当您输入要访问的网站的域名时 必须将域名转换为其相应的IP地址 操
  • Bash 连接字符串

    最常用的字符串操作之一是连接 字符串连接只是一个奇特的编程术语 用于通过将一个字符串附加到另一个字符串的末尾来将字符串连接在一起 在本教程中 我们将解释如何在 Bash 中连接字符串 连接字符串 连接两个或多个字符串变量的最简单方法是将它们
  • 如何在 Debian 9 上安装和使用 Docker Compose

    Docker 组合是一个允许您定义和编排多容器 Docker 应用程序的工具 它使用 YAML 文件来配置应用程序的容器 网络和卷 Compose 可用于多种目的 单主机应用程序部署 自动化测试和本地开发是 Docker Compose 最
  • 如何在 Debian 10 Linux 上安装 Apache Web 服务器

    Apache HTTP 服务器是世界上最流行的 Web 服务器之一 它是一个开源 跨平台的 HTTP 服务器 为大部分互联网网站提供支持 Apache 提供了许多强大的功能 可以通过附加模块进行扩展 在本教程中 我们将解释如何在 Debia
  • 如何在 Debian 9 上安装 PHP

    Debian 9 附带的 PHP 7 0 版本很快就会停止支持 并且不再接收安全更新 在本教程中 我们将引导您完成在 Debian 9 服务器上安装 PHP 7 2 的步骤 我们还将向您展示如何配置 Apache 和 Nginx 来运行 P
  • 如何在 Debian 9 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种标准网络协议 用于在远程网络之间传输文件 为了更安全 更快速的数据传输 请使用SCP or SFTP 有许多可用于 Linux 的开源 FTP 服务器 最流行和最广泛使用的是PureFTPd ProFTPD an
  • Linux 中的 Xargs 命令

    The xargs实用程序允许您从标准输入构建和执行命令 它通常通过管道与其他命令结合使用 With xargs 您可以提供标准输入作为命令行实用程序的参数 例如mkdir and rm 在本教程中 我们将介绍使用xargs命令 如何使用L
  • 如何在 Ubuntu 18.04 上安装 Chromium Web 浏览器

    Chromium是一款专为现代网络打造的快速 稳定且安全的浏览器 它是许多浏览器的基础 包括世界上使用最广泛的网络浏览器谷歌浏览器 Chromium 和 Google Chrome 之间的主要区别在于 Chromium 是开源的 与 Chr
  • 如何在 Raspberry Pi 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome 的 JavaScript 引擎构建的开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 它主要用于构建服务器端应用程序 但作为全栈和前端解决方案也非常流行 n
  • 如何在 Debian 9 上安装 Tomcat 9

    Apache Tomcat 是一个开源应用程序服务器 支持 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术 它是当今世界上使用最广泛的应用程序和 Web 服务器之一 本
  • 如何在 Ubuntu 18.04 上安装 PrestaShop

    普斯塔商店是一个免费开源的电子商务平台 它基于 PHP 和 MySQL 可以通过免费和高级插件和主题进行扩展 PrestaShop 具有直观的管理界面 多个支付网关 多语言 分析和报告等功能 是许多在线商家的首选平台 在本教程中 我们将向您
  • 如何在 Ubuntu 18.04 上安装 Jenkins

    Jenkins是一个开源自动化服务器 提供了一种设置持续集成和持续交付 CI CD 管道的简单方法 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD 是自动构建
  • 如何在 CentOS 7 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中
  • Linux 中的 Pgrep 命令

    本文涵盖了 Linux 的基础知识pgrep命令 pgrep是一个命令行实用程序 允许您根据给定条件查找正在运行的程序的进程 ID 它可以是完整或部分进程名称 运行进程的用户或其他属性 The pgrep命令是的一部分procps or p