命令简介

top命令是Linux系统中一款实时监控进程运行情况的工具,它可以动态地显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等。

命令格式

1
top [OPTIONS]

其中:

  • OPTIONS: 可选参数,用于控制top命令的行为。

参数说明

参数 说明 备注
-d 刷新时间间隔,单位为秒。 默认值为5秒。
-n 显示的次数。 默认情况下,top命令会一直运行,直到用户终止它。
-p 指定要监视的进程ID。
-u 指定要监视的用户名。 监视用户进程
-H 显示线程信息。
-i 忽略空闲进程。 显示网络服务
-c 显示命令行。
-M 以单核模式显示CPU使用率。
-S 累积模式。 显示进程累积时间
-l 显示所有进程,包括没有tty的进程。
-s 显示CPU使用率的百分比。 隐藏交换分区信息
-q 静默模式,不显示任何信息。

命令实例

基本示例

1.显示系统当前的运行情况:

1
2
3
4
5
6
7
8
9
10
11
leazhi@leazhi-ubuntu2310:~$ top

top - 08:55:52 up 4 days, 22:20, 2 users, load average: 1.16, 1.70, 1.91
任务: 632 total, 1 running, 629 sleeping, 0 stopped, 2 zombie
%Cpu(s): 2.0 us, 0.4 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 128610.2 total, 93768.6 free, 21880.1 used, 14816.2 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 106730.1 avail Mem

进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
147161 leazhi 20 0 1155.9g 398360 150852 S 31.8 0.3 10:15.25 msedge
6233 leazhi 20 0 1136.1g 432288 113632 S 11.6 0.3 127:51.72 code

2.每隔2秒刷新一次:

1
top -d 2

3.显示10次:

1
top -n 10

4.显示指定进程的信息:

1
top -p 1234

5.显示指定用户的所有进程:

1
top -u user

过滤进程

1.只显示CPU使用率超过50%的进程:

1
top -c | grep -E '^ *[5-9][0-9]% '

2.只显示内存使用率超过100MB的进程:

1
top -o %MEM | sort -n -r | head -n 10

3.只显示属于指定用户名的进程:

1
top -u user | grep -v 'COMMAND'

高级用法

1.使用 -H 选项显示线程信息:

1
top -H

2.使用 -i 选项忽略空闲进程:

1
top -i

3.使用 -c 选项显示命令行:

1
top -c

4.使用 -M 选项以单核模式显示CPU使用率:

1
top -M

5.使用 -S 选项累积模式:

1
top -S

6.使用 -l 选项显示所有进程:

1
top -l

7.使用 -s 选项显示CPU使用率的百分比:

1
top -s

8.使用 -q 选项静默模式:

1
top -q

此外,top 命令还有一些扩展用法,例如:

  1. 使用 -U 选项按CPU使用率排序:
1
top -U
  1. 使用 -P 选项按内存使用率排序:
1
top -P
  1. 使用 -K 选项按内核时间排序:**
1
top -K
  1. 使用 -r 选项以相反的顺序排序:
1
top -r
  1. 使用 -o 选项自定义输出格式:
1
top -o %CPU,%MEM,%TIME,%COMMAND
  1. 使用管道将top命令的结果输出到其他命令:
1
top -o %CPU,%MEM,%TIME,%COMMAND | grep -E '^ *[5-9][0-9]% '
  1. 使用脚本来自动执行top命令:
1
2
3
4
5
#!/bin/bash

top -n 10 | grep -E '^ *[5-9][0-9]% ' > top.out

cat top.out

扩展用法

除了上述基本用法外,top 命令还支持许多高级功能,例如:

  • 在 top 界面中按 f 键可以编辑显示字段
  • 按 W 键可以将当前设置写入系统配置文件
  • 按 S 键可以从配置文件中读取设置
  • 按 = 键可以调节窗口大小
  • 按 u 键可以仅显示指定用户的进程
  • 按 n 键可以切换显示程序名或命令行
  • 按 r 键可以重新设置优先级
  • 按 c 键可以切换显示命令路径或命令名

常见问题

1. top命令和htop命令有什么区别?

top命令和htop命令都是用于查看系统运行情况的工具,但它们之间有一些区别:

  • top命令是Linux/Unix系统中的命令,而htop命令是一个第三方工具。
  • htop命令的界面更加友好,并且提供了更多的功能,例如可以查看进程的CPU使用率历史记录、内存使用率分布等。

2. 如何使用top命令查看CPU使用率?

1
top -o %CPU

**3. 如何使用top命令查看内存使用