Linux ps 命令实用示例

LinuxBeginner
立即练习

介绍

在本实验中,你将学习如何使用 Linux 的 ps(process status,进程状态)命令来监控和管理系统中正在运行的进程。ps 命令是系统管理员和开发人员的基本工具,它提供了当前运行进程的详细信息,包括进程 ID、用户、CPU 和内存使用情况等。你将从了解 ps 命令的基本用法开始,然后学习如何按用户过滤进程,最后探索如何监控正在运行进程的 CPU 和内存使用情况。本实验涵盖了系统监控和管理的基本技能,这些技能对于有效管理基于 Linux 的系统至关重要。

Linux 命令速查表

理解 ps 命令

在这一步中,你将学习 ps(process status,进程状态)命令,这是一个基本的 Linux 命令,用于显示系统中正在运行的进程信息。

ps 命令提供了系统当前运行进程的快照,包括进程 ID(PID)、用户、CPU 和内存使用情况以及其他相关信息。

让我们从运行基本的 ps 命令开始:

ps

示例输出:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

输出显示了当前的 shell 进程(bash)和 ps 命令本身。

要查看有关运行进程的更详细信息,可以使用以下选项:

ps -ef

示例输出:

UID        PID  PPID  C STIME TTY          TIME CMD
labex     1234  4321  0 10:30 pts/0    00:00:00 /bin/bash
labex     5678  1234  0 10:30 pts/0    00:00:00 ps -ef

-e 选项显示所有进程,-f 选项提供完整格式的列表,包括用户 ID(UID)、进程 ID(PID)、父进程 ID(PPID)、CPU 使用率(C)、启动时间(STIME)、终端(TTY)、CPU 时间(TIME)以及命令(CMD)。

你还可以根据特定条件过滤输出,例如按运行进程的用户:

ps -u labex

示例输出:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

此命令显示由 labex 用户拥有的所有进程。

按用户过滤进程

在这一步中,你将学习如何按拥有进程的用户过滤正在运行的进程列表。

ps 命令提供了多种选项来过滤进程列表,其中之一是 -u--user 选项。该选项允许你显示特定用户拥有的进程。

让我们从列出 labex 用户拥有的所有进程开始:

ps -u labex

示例输出:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

此命令显示由 labex 用户拥有的所有进程。

你还可以使用 grep 命令进一步过滤 ps 命令的输出。例如,查找 labex 用户拥有的所有正在运行 bash 命令的进程:

ps -ef | grep -i labex | grep -i bash

示例输出:

labex     1234  4321  0 10:30 pts/0    00:00:00 /bin/bash

在这个命令中,ps -ef 列出所有进程,第一个 grep -i labex 过滤输出以仅显示 labex 用户拥有的进程,第二个 grep -i bash 过滤输出以仅显示正在运行 bash 命令的进程。

grep 命令中的 -i 选项使搜索不区分大小写,因此它将匹配 "labex" 和 "bash" 的大小写形式。

监控 CPU 和内存使用情况

在这一步中,你将学习如何使用 ps 命令监控正在运行进程的 CPU 和内存使用情况。

要查看所有进程的 CPU 和内存使用情况,可以使用 ps 命令的 -o 选项来自定义输出:

ps -eo pid,user,%cpu,%mem,cmd

示例输出:

  PID USER     %CPU %MEM COMMAND
 1234 labex     2.0  0.1 /bin/bash
 5678 labex     0.5  0.2 ps -eo pid,user,%cpu,%mem,cmd

此命令显示每个进程的以下信息:

  • PID:进程 ID
  • USER:拥有进程的用户
  • %CPU:进程使用的 CPU 百分比
  • %MEM:进程使用的内存百分比
  • COMMAND:启动进程的命令

你还可以按 CPU 或内存使用情况对输出进行排序,以识别消耗最多系统资源的进程:

ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu

示例输出:

  PID USER     %CPU %MEM COMMAND
 5678 labex     2.0  0.2 ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu
 1234 labex     1.5  0.1 /bin/bash

此命令按 CPU 使用率降序排序输出,因此使用最多 CPU 的进程会显示在最前面。

同样,你可以按内存使用情况排序:

ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem

示例输出:

  PID USER     %CPU %MEM COMMAND
 5678 labex     2.0  0.2 ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem
 1234 labex     1.5  0.1 /bin/bash

此命令按内存使用率降序排序输出,因此使用最多内存的进程会显示在最前面。

总结

在本实验中,你学习了 ps(process status,进程状态)命令,这是一个基本的 Linux 命令,用于显示系统中正在运行的进程信息。你从基本的 ps 命令开始,探索了显示更详细信息的选项,例如 -e-f 选项。你还学习了如何使用 -u--user 选项按拥有进程的用户过滤进程列表。此外,你还学习了如何监控正在运行进程的 CPU 和内存使用情况。

本实验全面介绍了 ps 命令及其在管理和监控 Linux 系统上运行进程的实际应用。

Linux 命令速查表