50% 折扣 所有计划,时间有限。开始于 $2.48/mo
还剩 10 分钟
服务器和操作系统

掌握进程管理 – Linux ps aux 命令

艾达·洛夫古德 By 艾达·洛夫古德 10 分钟阅读 更新于 2024 年 7 月 11 日
linux ps aux 命令

您的浏览器上是否至少打开了五个其他选项卡,试图找到您遇到的 Linux 问题的答案?
这种行为并非特定于您或一般人类。机器也能执行多任务。就像您一样,Linux 也是一个多任务程序,并且有多个进程同时运行。无论您是专业使用 Linux 的开发人员,还是使用 Linux 进行日常活动的普通用户,您都应该能够理解这些并行进程,以保持对系统的完全控制。进程管理和系统控制是运行 Linux 系统的重要方面。

为了有效地管理系统上运行的进程,实时查看正在发生的情况,了解所有后台进程并控制系统资源,您需要进程管理的技术知识。 ps aux 命令是一个功能强大的命令,在进程管理和系统控制中起着至关重要的作用。在这篇文章中,我们将详细了解 ps aux 命令及其用例。我们还将介绍 Linux 进程如何工作的基础知识。

了解 Linux 中的进程管理

在使用 Linux 时,我们与系统的大部分交互都是以命令的形式进行的。在Linux中,进程是命令的执行。 Linux 进程管理涉及操作命令启动的进程。您可以终止进程、启动进程或恢复已终止的进程。您还可以操纵正在进行的命令。

Linux 进程有两种类型:

  • 前台进程
  • 后台进程

Linux 前台进程

前台进程是主动执行的进程,通常需要与用户进行持续、实时的交互。当前台进程正在运行时,其他进程的执行就会暂停。因此,您无法运行任何其他命令。前台进程接收来自键盘的输入作为标准输入或 stdin。为了防止进一步混淆,stdin 和 stdout 与 stderr 一起都是 Linux 数据流。这基本上是用户与流程交互并为其提供数据的方式。进程根据其功能和输入生成标准输出或标准输出。前台进程是Linux 中默认的执行模式。

Linux 后台进程

后台进程与前台进程完全相反,因为它们不需要用户交互,也不会专门占用终端的全部空间,从而允许执行其他进程。后台进程的输入和输出类型也不同。他们通常不接受标准输入。但是,该过程的结果可以显示为标准输出。显示后台进程的输出与其他前台进程的输出同时发生。因此,您可以查看后台进程的进度或结果,而无需中断其他重要操作。

由于在 Linux 中执行各种任务都依赖于命令行,因此前台进程可能会很麻烦,而在后台运行进程可以让您的终端从处理其他任务中解放出来。因此,将前台任务放在后台是合理的做法。为了 将进程发送到后台 您应该首先阻止它在前台执行。只需按 CTRL+Z 即可完成此操作。然后通过输入 bg 命令,终止的进程将在后台重新运行。 fg 命令将反转该过程并将其带到前台。

进程状态;语法、命令和解释输出

Linux 中有效的进程管理需要了解可以通过 ps aux 命令监视的进程的状态。但在深入研究 ps aux 命令之前,让我们先了解一下不同的进程状态。虽然流程和流程状态有多种类型,但下表列出了最常见的类型:

进程状态 描述
跑步(R) 该进程当前正在运行并占用CPU资源。
睡眠 可中断(S) 该进程正在等待特定的输入或事件以再次开始运行。当前未使用 CPU 资源。当资源可用或发出信号时,该过程将再次开始。
不间断 (D) 就像处于可中断睡眠状态的进程一样,不可中断睡眠进程不使用 CPU 资源。唯一的区别是它不会对信号做出反应,只有在资源可用时才会恢复生命。
停止(T) 用户输入或特定事件已暂停该过程。处于停止状态的进程不使用任何 CPU 资源。
死了(X) 该进程已终止并且不再存在。

充分了解这些进程状态是有效管理 Linux 系统并排除故障的一个重要方面。现在,我们来介绍在 Linux 中获取进程状态的语法和命令,以及如何解释输出。

用于获取进程状态的语法和命令

您可以使用 ps 命令的基本语法获取 Linux 中的进程状态:

ps [process name]

ps 命令还使用其他选项:

辅助: 此选项显示系统上运行的所有进程的完整列表。它提供进程 ID (PID)、父进程 ID (PPID)、CPU 和内存使用情况以及进程状态等信息。与基本 ps 命令相比,ps aux 命令提供的输出更加整洁,具有更高的可读性,并且包含许多更有用的信息。

有效: 此选项显示带有额外详细信息的完整格式的进程列表,包括作为树状结构的进程层次结构。

l: 此选项提供长列表格式,显示有关流程的更详细信息。

了解输出

当您使用所需选项执行 ps 命令时,它会生成一个输出,表示系统上当前运行的进程。输出由显示不同进程属性的列组成,包括进程 ID (PID)、父进程 ID (PPID)、CPU 使用情况、内存使用情况、进程状态、终端类型和命令名称。

以下是对每一列含义的解释:

PID: 此列显示进程的唯一 ID。

电传打字机: 此列显示用户已登录的终端类型。

时间: 此列指示该进程使用了​​多少 CPU(以分钟和秒为单位)。

命令: 此列表示启动此进程的命令的名称。

分析 ps 命令提供的信息可以让您更深入地了解 Linux 计算机的行为。

使用 ps 命令进行进程管理的高级 ps 技术

让我们探讨一下 ps 命令的一些高级功能以及如何有效地利用它们:

1. 流程排序

ps aux 命令可用于根据不同的列对最终输出进行排序。例如,您可以按进程 ID 或 CPU 使用率对进程进行排序,以便按所需顺序查看它们。

以下是使用 ps aux 根据进程 ID 对进程进行排序的示例:

ps aux –-sort pid

head 命令仅用于获取输出的前五行。

ps aux 排序 pid

2. 流程树可视化

如果想清楚地看到进程的父子关系,可以使用带有forest选项的ps命令。

ps -aux --forest

Linux进程的父子关系

要以树状模式查看进程之间的关系,还可以使用 pstree 命令。该命令将创建一个更易于理解的输出,并完美地说明了进程之间的层次结构。要使用此命令,请输入以下命令:

pstree [pid or username]

通过给该命令一个 PID,您可以告诉该命令将该进程视为树的根。

3. 过滤过程

想象一下您想要使用一组特定的流程;例如,您想列出其中一位用户的所有进程。可以使用 ps 命令来完成基于特征的过滤进程。在此示例中,我们根据用户名过滤进程。

ps -u [username]

使用 ps 命令过滤 Linux 进程

ps aux grep 命令可以根据您提供给该命令的任何模式或关键字来过滤进程。看一下下面的代码作为示例:

ps aux grep 命令示例

此命令首先列出所有进程,并将输出传递给 grep 命令以根据进程 ID 过滤该长列表。在上图中,您可以看到信息中包含数字 15 的所有进程的列表。

有关 ps 命令及其功能的更多信息,您可以阅读该命令的手册页。下面的代码将为您显示手册页:

man ps

在 Linux 中管理任务优先级

为了更好地解释 Linux 中进程管理的实际工作原理,我们还应该介绍进程优先级以及如何更改它。想象一下这样一种情况,您正在运行多个进程,并且 CPU 因任务而超载。如果您希望管理资源在这种情况下正常工作,您需要更改正在运行的任务的优先级。 Linux 中的每个进程都有一个优先级值。该值有助于内核确定任务的优先级。优先级数字范围从 -20 到 19,其中 19 是最不重要的任务,-20 是最紧急的任务。与其他进程相比,具有最高优先级的进程会获得更多的 CPU 时间。优先级值通常称为“nice”值,nice 值越低表示优先级越高。

您可以使用nice和renice命令来有效地分配系统资源。

但在更改进程的优先级之前,让我们先探讨一下 ps 命令的第一个用例。

  • 使用 ps 命令显示当前所有进程的优先级:

此命令列出所有进程及其进程 ID (PID)、命令名称和当前优先级(nice 值):

 

ps -eo pid,cmd,nice

使用 ps 命令获取所有进程的优先级

  • 使用nice命令以默认高优先级启动进程:

您可以使用以下命令启动具有您首选优先级的进程:

nice -n [priority] [command]

将 [priority] 替换为表示优先级的所需负值,将 [command] 替换为您要执行的命令。

这是一个例子:

以默认高优先级启动进程

  • 更改已运行命令的优先级:
renice -n [priority] -p [PID]

将要操作的进程的进程 ID 替换为 [PID]。

如果您想拥有一台功能强大的 Linux 机器来执行各种任务,那么 Linux虚拟专用服务器 是最适合您的解决方案。 Cloudzy 提供各种 Linux VPS 计划,并预装了您首选的发行版。 Cloudzy 具有 24/7 支持、30 天退款政策和 99.95% 正常运行时间保证等众多优势特性,成功地保持了低廉的价格。我们的 Linux VPS 起价仅为 4.95 美元/月。

Linux VPS 托管

以最便宜的价格为自己购买经济型或高级 Linux VPS 来托管您的网站或远程桌面。 VPS 在 Linux KVM 上运行以提高效率,并在具有 NVMe SSD 存储的强大硬件上运行以提高速度。

阅读更多

结论

总而言之,掌握进程管理和系统控制对于系统管理员、渴望了解更多的 Linux 爱好者以及普通 Linux 用户来说是必须的。了解 ps 命令的功能和功能可以简化您学习进程管理的过程。因此,本文讨论了 ps 命令的重要用例,并向读者介绍了 Linux 进程。

常问问题

Linux 中的 ps aux 命令是什么?

ps aux Linux 命令是 Linux 中常用的命令,用于获取正在运行的进程的信息。它可以以用户友好的格式提供完整的进程列表,包括进程 ID (PID)、CPU 和内存使用情况、执行状态以及其他重要详细信息。

Linux 中的进程有哪两种类型?

前台进程和后台进程。前台进程在运行时占用终端,并且不允许其他执行。后台进程在后台运行,不占用整个终端。

如何查看 Linux 系统上运行的进程列表?

可以使用 ps、top 或 htop 等命令来查看 Linux 系统上运行的进程列表。例如,Linux ps aux 命令提供有关所有正在运行的进程的详细信息。

分享

更多来自博客

继续阅读。

可以使用 Cosmos Cloud 运行的最佳自托管应用程序封面图像,其中包含 Cosmos 仪表板周围的应用程序面板。
服务器和操作系统

可以使用 Cosmos Cloud 运行的最佳自托管应用程序:文件、媒体、密码、自动化等等!

也许您已经设置了 Cosmos Cloud,现在想看看哪些应用程序与其匹配,或者您甚至还没有决定使用 Cosmos,只是想看看它有多适合您的工作

尼克·西尔弗尼克·西尔弗 阅读时间 16 分钟
Portainer 与 Cosmos Cloud 用于管理 Docker 应用程序的比较,包括混合设置图和 neon ops 与访问块。
服务器和操作系统

Portainer 与 Cosmos Cloud:最适合 Docker 应用程序管理

如果您已经了解 Docker 并且只是想要以更简洁的方式运行不断增长的应用程序堆栈,那么这里是 Portainer 与 Cosmos Cloud 的简短回答。 Portainer 是直接的更强选择

尼克·西尔弗尼克·西尔弗 阅读时间 14 分钟
Cosmos Cloud、CasaOS 与 Umbrel 专题图显示了一个抽象云网络世界中的三个自托管路径。
服务器和操作系统

Cosmos Cloud、CasaOS 与 Umbrel:哪个自托管平台适合您的设置?

简而言之,CasaOS 仍然是最容易开始的地方,Umbrel 具有最干净的策划感觉,一旦您想要更严格地控​​制 doma,Cosmos Cloud 就更有意义

尼克·西尔弗尼克·西尔弗 阅读时间 11 分钟

准备好部署了吗? 每月 2.48 美元起。

独立云,自 2008 年起。AMD EPYC、NVMe、40 Gbps。 14 天退款。