Linux 进程管理

LinuxBeginner
立即练习

介绍

本实验将介绍用于管理进程和系统资源的基本 Linux 工具。作为初学者,你将学习如何使用 pstopfree 命令来监控和分析系统进程及内存使用情况。这些工具是理解 Linux 系统运行状态的基础。

目标

完成本实验后,你将能够:

  • 使用 ps 列出和过滤进程
  • 使用 top 实时监控进程
  • 使用 free 检查系统内存使用情况
这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 85%。获得了学习者 100% 的好评率。

列出所有进程

让我们从使用 ps 命令列出系统上运行的所有进程开始。

  1. 打开终端。你应该位于 /home/labex/project 目录中。如果不确定,可以通过输入 pwd 并按 Enter 键来检查当前目录。

  2. 运行以下命令以列出所有进程:

    ps -e

    这将显示所有进程的列表,包括它们的进程 ID (PID)、终端 (TTY)、CPU 时间和命令名称。

  3. 花点时间检查输出。你会看到系统进程和用户进程。以下是每一列的含义:

    • PID: 唯一的进程 ID
    • TTY: 与进程关联的终端类型
    • TIME: 进程使用的 CPU 时间
    • CMD: 命令或程序名称

    如果看到不熟悉的进程名称,请不要担心;其中许多是运行在后台的系统进程。

显示详细的进程信息

现在,让我们获取有关进程的更详细信息。

  1. 运行以下命令:

    ps aux

    该命令显示所有进程的详细列表,包括启动进程的用户、CPU 和内存使用情况以及完整的命令行。

  2. 输出可能会很长。你可以使用 less 命令更轻松地查看:

    ps aux | less

    这将 ps aux 的输出通过管道传递给 less,从而允许你滚动查看。

  3. less 查看器中:

    • 使用上下箭头键滚动
    • Space 键向前翻一页
    • b 键向后翻一页
    • 完成后按 q 键退出 less 查看器
  4. 让我们分解一下你看到的内容:

    • USER: 进程的所有者
    • PID: 进程 ID
    • %CPU: CPU 使用率
    • %MEM: 内存使用率
    • VSZ: 虚拟内存大小
    • RSS: 常驻集大小(未交换的物理内存使用量)
    • TTY: 终端类型
    • STAT: 进程状态
    • START: 进程的启动时间
    • TIME: 累计 CPU 时间
    • COMMAND: 带有所有参数的完整命令

如果你现在不理解所有这些内容,请不要担心。随着经验的积累,你会逐渐熟悉这些术语。

按用户过滤进程

你可以过滤进程,仅显示属于特定用户的进程。当你希望专注于某个特定用户账户拥有的进程时,这非常有用。

  1. 要查看由 root 用户拥有的进程,请运行:

    ps -u root

    root 用户是 Linux 系统中的超级用户,拥有完整的系统访问权限。许多系统进程都以 root 账户运行。

  2. 要查看由当前用户(labex)拥有的进程,请运行:

    ps -u labex

    这将显示你在自己的用户账户下启动的所有进程。

  3. 比较这两个命令的输出。你可能会发现 root 用户下的进程比你用户账户下的进程更多。

使用 top 实时监控进程

top 命令提供了一个动态的、实时的运行进程视图。它就像是系统的实时仪表盘。

  1. 运行以下命令:

    top
  2. 你将看到一个持续更新的系统进程显示,按 CPU 使用率排序。显示内容分为两个主要部分:

    • 顶部的摘要区域,显示系统范围的信息
    • 进程列表,显示各个进程的详细信息
  3. top 中,你可以使用以下命令:

    • M 键按内存使用率排序,而不是 CPU
    • P 键返回按 CPU 使用率排序
    • T 键按运行时间排序
    • N 键按 PID 排序
    • 使用上下箭头键浏览进程列表
    • q 键退出 top
  4. 摘要区域包括重要的系统信息:

    • 系统运行时间和负载平均值
    • 任务摘要(总数、运行中、睡眠中、已停止、僵尸进程)
    • CPU 状态(用户、系统、空闲等)
    • 内存使用情况(总量、空闲、已使用、缓冲区/缓存)
    • 交换分区使用情况

花些时间探索 top。它是一个强大的工具,可以帮助你实时了解系统上正在发生的事情。

检查系统内存使用情况

free 命令允许你快速轻松地检查系统的内存使用情况。

  1. 运行以下命令以人类可读的格式查看内存使用情况:

    free -h

    -h 选项表示“人类可读”(human-readable),以 1024 的幂次方显示大小(例如,1K、234M、2G)。

  2. 你将看到类似以下的输出:

                  total        used        free      shared  buff/cache   available
    Mem:           7.7G        4.1G        287M        624M        3.3G        2.7G
    Swap:          2.0G        506M        1.5G

    让我们分解每一行和每一列的含义:

    • Mem: 这一行显示系统 RAM 的信息
    • Swap: 这一行显示交换空间(虚拟内存)的信息

    列:

    • total: 总安装内存
    • used: 当前使用的内存
    • free: 未使用的内存
    • shared: 多个进程共享的内存
    • buff/cache: 内核缓冲区、页面缓存和 slabs 使用的内存
    • available: 估计可用于启动新应用程序的内存量,无需交换
  3. 如果“free”内存看起来很低,请不要惊慌。Linux 使用可用内存进行磁盘缓存以提高系统性能,但如果应用程序需要,这些内存可以被回收。

总结

在本实验中,你学习了如何使用关键的 Linux 进程管理工具:

  • 使用 ps 列出和过滤进程
  • 使用 top 实时监控进程
  • 使用 free 检查系统内存使用情况

这些命令对于系统管理和故障排除至关重要。它们让你能够深入了解系统上正在运行的内容、资源的使用情况,并帮助你识别潜在问题。

随着你对这些工具的熟悉程度提高,你可以探索更多选项,并将它们与其他 Linux 命令结合使用,以进行更高级的系统分析。例如:

  • psgrep 结合使用以查找特定进程
  • 学习解释 top 中的详细信息以识别资源密集型应用程序
  • 在脚本中使用 free 来监控内存使用情况随时间的变化

请记住,熟能生巧!不要犹豫,在自己的环境中尝试这些命令,以加深对 Linux 进程管理的理解。你使用这些工具的次数越多,它们就会变得越直观。