Linux使用top命令过滤排序的方法详解

 更新时间:2026年02月04日 09:26:29   作者:liweiweili126  
top是CentOS 7中最核心的系统监控工具,能实时显示进程的CPU、内存等资源占用,下面从基础界面、排序、过滤三个维度详解,重点聚焦你关注的排序和过滤功能,需要的朋友可以参考下

你希望详细掌握CentOS 7系统中top命令的使用方法,特别是其中的过滤和排序功能,以此精准监控系统进程的资源占用情况。

top是CentOS 7中最核心的系统监控工具,能实时显示进程的CPU、内存等资源占用,下面从基础界面排序过滤三个维度详解,重点聚焦你关注的排序和过滤功能。

一、先熟悉top基础界面

执行top命令后,界面分为两部分:

top - 10:23:45 up 7 days,  2:10,  1 user,  load average: 0.10, 0.05, 0.01
Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8010240 total,  1234560 free,  2345670 used,  4429910 buff/cache
KiB Swap:  8388604 total,  8388604 free,        0 used.  5234560 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                
 1234 root      20   0  123456  12345   6789 S   5.0  0.2   0:10.23 nginx                                                                  
 5678 mysql     20   0  987654 876543  12345 S   2.0 10.9   1:20.34 mysqld                                                                 
  • 上部(系统概览):负载、进程总数、CPU/内存/交换分区使用率。
  • 下部(进程列表):PID(进程ID)、USER(所属用户)、%CPU(CPU使用率)、%MEM(内存使用率)、COMMAND(进程名)等核心列。

二、top排序功能(核心)

排序是top最常用的功能,分为交互模式排序(运行中操作)和命令行参数排序(启动时指定),新手优先掌握交互模式。

1. 交互模式快速排序(运行top后操作)

运行top后,直接按以下快捷键即可实时排序,无需重启命令:

快捷键排序规则适用场景
PCPU使用率降序(默认)找CPU占用最高的进程
M内存使用率降序找内存占用最高的进程(最常用)
T累计CPU时间(TIME+) 降序找长期占用CPU的进程
NPID降序按进程ID排序
R反转当前排序(升序↔降序)想看占用最低的进程时使用
< / >切换排序列自定义按其他列(如USER)排序

示例

  • 运行top后按M,进程会立刻按内存使用率从高到低排列,能一眼定位内存“大户”(如mysql、java进程);
  • R后,排序反转,变成内存使用率从低到高排列;
  • >键,可切换到按TIME+列排序,再按R变成升序,能找到运行时间最短的进程。

2. 命令行参数排序(启动时指定)

如果想启动top就按指定列排序,用-o参数(CentOS 7的top原生支持),格式:

top -o 列名

常用列名:%CPU%MEMPIDTIME+USER(列名需和top界面显示一致)。

示例

# 启动top时直接按内存使用率降序排序
top -o %MEM

# 启动top时按PID升序排序(加负号表示升序)
top -o -PID

# 启动top时按累计CPU时间降序排序
top -o TIME+

三、top过滤功能(精准筛选进程)

过滤能只显示符合条件的进程,避免无关进程干扰,分为交互模式过滤命令行参数过滤

1. 交互模式过滤(运行top后操作)

(1) 按用户过滤(最常用):按u键

操作步骤:

  1. 运行top
  2. u键,界面底部提示Which user (blank for all)
  3. 输入要过滤的用户名(如rootnginxmysql),回车;
    • 若直接回车,取消用户过滤,显示所有用户进程。

示例
u → 输入nginx → 回车,仅显示nginx用户的所有进程,快速排查nginx进程的资源占用。

(2) 按进程名/自定义条件过滤:按o键

操作步骤:

  1. 运行top
  2. o键,界面提示Add filter expression
  3. 输入过滤条件(格式:列名=值/列名>值,支持通配符*);
  4. 回车生效。

常用过滤条件示例

  • COMMAND=nginx:只显示进程名包含nginx的进程;
  • %CPU>5:只显示CPU使用率超过5%的进程;
  • %MEM>2:只显示内存使用率超过2%的进程;
  • USER=mysql:等效于按u键过滤mysql用户(多一种方式)。

(3) 清除所有过滤条件:按=键

如果设置了多个过滤条件,想一键恢复显示所有进程,按=键即可。

2. 命令行参数过滤(启动时指定)

适合脚本/批量监控场景,启动top时直接指定过滤条件:

(1) 按用户过滤:-u参数

格式:top -u 用户名/UID

# 只显示nginx用户的进程
top -u nginx

# 只显示UID为1000的用户进程(UID可通过id命令查询:id 用户名)
top -u 1000

(2) 按PID过滤:-p参数

格式:top -p PID1,PID2,PID3(多个PID用逗号分隔,最多20个)

# 只监控PID为1234(nginx主进程)和5678(mysql进程)的进程
top -p 1234,5678

四、实用补充技巧

  1. 调整刷新频率:默认3秒刷新一次,按s键修改(如输入1则1秒刷新),或启动时用top -d 1
  2. 显示单CPU核心使用率:按数字1,从“总CPU使用率”切换为“每个核心的使用率”;
  3. 只显示活跃进程:按i键,隐藏闲置(sleeping)进程,减少干扰;
  4. 退出top:按q键(或Ctrl+C)。

总结

  1. 排序核心:交互模式按P/M/T快速按CPU/内存/累计时间排序,启动时用top -o 列名指定排序列(加负号为升序);
  2. 过滤核心:按u过滤用户、按o设置自定义过滤条件(如COMMAND=nginx),启动时用-u(用户)/-p(PID)过滤;
  3. 实用技巧:按1看单CPU核心使用率,按=清除过滤,按q退出top。

以上就是Linux使用top命令过滤排序的方法详解的详细内容,更多关于Linux top命令过滤排序的资料请关注脚本之家其它相关文章!

相关文章

  • linux杀进程的多种方法

    linux杀进程的多种方法

    这篇文章主要介绍了linux杀进程的多种方法,需要的朋友可以参考下
    2014-03-03
  • 详解几种Linux 查询外网出口IP命令的方法

    详解几种Linux 查询外网出口IP命令的方法

    本篇文章主要介绍了详解几种Linux 查询外网出口IP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux系统用户管理命令小结

    Linux系统用户管理命令小结

    这篇文章主要介绍了Linux系统用户管理命令小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 详解如何备份及恢复 Linux 文件权限

    详解如何备份及恢复 Linux 文件权限

    这篇文章主要介绍了详解如何备份及恢复 Linux 文件权限,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • debian安装后sudo命令不能用的解决方法

    debian安装后sudo命令不能用的解决方法

    这篇文章主要介绍了debian安装后sudo不能用的解决方法,大家参考使用
    2013-11-11
  • Linux 自动分区、格式化、挂载脚本详解

    Linux 自动分区、格式化、挂载脚本详解

    这篇文章主要介绍了Linux 自动分区、格式化、挂载脚本详解的相关资料,自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载,需要的朋友可以参考下
    2016-12-12
  • CentOS挂载lvm分区VG重名问题及解决

    CentOS挂载lvm分区VG重名问题及解决

    文章描述了在CentOS上挂载LVM分区时遇到VG重名问题的解决过程,通过使用pvs、lvs、vgs命令查看LVM情况,发现VG名称重复,无法直接通过名称更改,解决方法包括通过UUID改名,修改VG属性,以及挂载目录,最终成功恢复文件
    2024-12-12
  • PHP程序员玩转Linux系列 Linux和Windows安装nginx

    PHP程序员玩转Linux系列 Linux和Windows安装nginx

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 使用 bind 设置 DNS 服务器的方法

    使用 bind 设置 DNS 服务器的方法

    Bind9是一个强大的Linux下开放源代码的DNS服务器软件,这篇文章主要介绍了使用 bind 设置 DNS 服务器的方法,需要的朋友可以参考下
    2020-03-03
  • Linux如何修改固定ip地址(亲测有效)

    Linux如何修改固定ip地址(亲测有效)

    这篇文章主要介绍了Linux如何修改固定ip地址问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论