介绍
本实验将介绍用于管理进程和系统资源的基本 Linux 工具。作为初学者,你将学习如何使用 ps、top 和 free 命令来监控和分析系统进程及内存使用情况。这些工具是理解 Linux 系统运行状态的基础。
目标
完成本实验后,你将能够:
- 使用
ps列出和过滤进程 - 使用
top实时监控进程 - 使用
free检查系统内存使用情况
列出所有进程
让我们从使用 ps 命令列出系统上运行的所有进程开始。
打开终端。你应该位于
/home/labex/project目录中。如果不确定,可以通过输入pwd并按 Enter 键来检查当前目录。运行以下命令以列出所有进程:
ps -e这将显示所有进程的列表,包括它们的进程 ID (PID)、终端 (TTY)、CPU 时间和命令名称。
花点时间检查输出。你会看到系统进程和用户进程。以下是每一列的含义:
- PID: 唯一的进程 ID
- TTY: 与进程关联的终端类型
- TIME: 进程使用的 CPU 时间
- CMD: 命令或程序名称
如果看到不熟悉的进程名称,请不要担心;其中许多是运行在后台的系统进程。
显示详细的进程信息
现在,让我们获取有关进程的更详细信息。
运行以下命令:
ps aux该命令显示所有进程的详细列表,包括启动进程的用户、CPU 和内存使用情况以及完整的命令行。
输出可能会很长。你可以使用
less命令更轻松地查看:ps aux | less这将
ps aux的输出通过管道传递给less,从而允许你滚动查看。在
less查看器中:- 使用上下箭头键滚动
- 按
Space键向前翻一页 - 按
b键向后翻一页 - 完成后按
q键退出less查看器
让我们分解一下你看到的内容:
- USER: 进程的所有者
- PID: 进程 ID
- %CPU: CPU 使用率
- %MEM: 内存使用率
- VSZ: 虚拟内存大小
- RSS: 常驻集大小(未交换的物理内存使用量)
- TTY: 终端类型
- STAT: 进程状态
- START: 进程的启动时间
- TIME: 累计 CPU 时间
- COMMAND: 带有所有参数的完整命令
如果你现在不理解所有这些内容,请不要担心。随着经验的积累,你会逐渐熟悉这些术语。
按用户过滤进程
你可以过滤进程,仅显示属于特定用户的进程。当你希望专注于某个特定用户账户拥有的进程时,这非常有用。
要查看由 root 用户拥有的进程,请运行:
ps -u rootroot 用户是 Linux 系统中的超级用户,拥有完整的系统访问权限。许多系统进程都以 root 账户运行。
要查看由当前用户(labex)拥有的进程,请运行:
ps -u labex这将显示你在自己的用户账户下启动的所有进程。
比较这两个命令的输出。你可能会发现 root 用户下的进程比你用户账户下的进程更多。
使用 top 实时监控进程
top 命令提供了一个动态的、实时的运行进程视图。它就像是系统的实时仪表盘。
运行以下命令:
top你将看到一个持续更新的系统进程显示,按 CPU 使用率排序。显示内容分为两个主要部分:
- 顶部的摘要区域,显示系统范围的信息
- 进程列表,显示各个进程的详细信息
在
top中,你可以使用以下命令:- 按
M键按内存使用率排序,而不是 CPU - 按
P键返回按 CPU 使用率排序 - 按
T键按运行时间排序 - 按
N键按 PID 排序 - 使用上下箭头键浏览进程列表
- 按
q键退出top
- 按
摘要区域包括重要的系统信息:
- 系统运行时间和负载平均值
- 任务摘要(总数、运行中、睡眠中、已停止、僵尸进程)
- CPU 状态(用户、系统、空闲等)
- 内存使用情况(总量、空闲、已使用、缓冲区/缓存)
- 交换分区使用情况
花些时间探索 top。它是一个强大的工具,可以帮助你实时了解系统上正在发生的事情。
检查系统内存使用情况
free 命令允许你快速轻松地检查系统的内存使用情况。
运行以下命令以人类可读的格式查看内存使用情况:
free -h-h选项表示“人类可读”(human-readable),以 1024 的幂次方显示大小(例如,1K、234M、2G)。你将看到类似以下的输出:
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: 估计可用于启动新应用程序的内存量,无需交换
如果“free”内存看起来很低,请不要惊慌。Linux 使用可用内存进行磁盘缓存以提高系统性能,但如果应用程序需要,这些内存可以被回收。
总结
在本实验中,你学习了如何使用关键的 Linux 进程管理工具:
- 使用
ps列出和过滤进程 - 使用
top实时监控进程 - 使用
free检查系统内存使用情况
这些命令对于系统管理和故障排除至关重要。它们让你能够深入了解系统上正在运行的内容、资源的使用情况,并帮助你识别潜在问题。
随着你对这些工具的熟悉程度提高,你可以探索更多选项,并将它们与其他 Linux 命令结合使用,以进行更高级的系统分析。例如:
- 将
ps与grep结合使用以查找特定进程 - 学习解释
top中的详细信息以识别资源密集型应用程序 - 在脚本中使用
free来监控内存使用情况随时间的变化
请记住,熟能生巧!不要犹豫,在自己的环境中尝试这些命令,以加深对 Linux 进程管理的理解。你使用这些工具的次数越多,它们就会变得越直观。



