显示系统的运行状态和进程信息
top命令是Linux系统中最常用的命令之一,它可以显示系统的运行状态和进程信息,以及一些关于资源利用率的摘要信息,包括CPU和内存的使用情况。top命令提供了一个动态的实时视图,可以随时更新和刷新。top命令的全称是table of processes,意思是进程表。
top命令适用于大多数Linux发行版,如Ubuntu、Debian、Fedora、CentOS等。不同的发行版可能会有一些细微的差异,例如显示的字段和选项。要查看top命令的版本,可以使用以下命令:
$ top -v
要运行top命令,只需要在终端中输入以下命令并按回车键:
$ top
top命令会进入交互式模式,显示当前活动的进程和其他系统信息。你可以使用一些可用的选项和快捷键来自定义视图。
选项 | 说明 |
---|---|
-h, --help | 显示帮助信息,然后退出程序 |
-v, --version | 显示库版本和使用提示,然后退出程序 |
-b, --batch | 启动批处理模式,允许将top命令的输出发送到文件或其他程序。在批处理模式下,top不接受输入,并且运行直到被杀死或达到指定的迭代次数 |
-c, --command | 切换显示命令行或程序名。如果上次记住的状态是显示命令行,则该字段现在显示程序名,反之亦然 |
-d, --delay | 指定刷新屏幕之前的延迟时间,覆盖默认值。该值以秒为单位。该命令接受小数秒,但不接受负数。或是在交谈式指令列( interactive command)按 s |
-e, --kibibytes | 切换内存单位为kibibytes(1024字节),而不是默认的mebibytes(1048576字节) |
-H, --threads | 显示单个线程而不是每个进程的所有线程之和。linux 中的线程和进程使用相同的数据结构,所以每个线程也有单独的PID。或是在交谈式指令列( interactive command)按 H。 |
-i, --idle | 切换显示空闲进程。当该选项关闭时,top不显示自上次更新以来没有使用CPU资源的进程 |
-n, --iterations | 指定top产生的最大迭代次数,在达到该次数后退出程序 |
-o, --sort-key | 指定top用于排序进程的字段名。在字段名前加上+号强制top按照从高到低的顺序排序,加上-号则按照从低到高的顺序排序 |
-p, --pid | 指定要监视的一个或多个进程ID(PID),用逗号分隔。只有指定的进程会被显示 |
-u, --user | 指定要监视的一个或多个用户名或用户ID(UID),用逗号分隔。只有属于指定用户的进程会被显示 |
-w, --width | 指定屏幕宽度,覆盖默认值 |
交互窗口下的操作指令:
注意:
shift + >
或 shift + <
可以向右或左改变排序列free
命令uptime
命令$ top
这个命令会显示系统的摘要信息
top - 09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00
Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 377672k total, 322332k used, 55340k free, 32592k buffers
Swap: 397308k total, 67192k used, 330116k free, 71900k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2856 656 388 S 0.0 0.2 0:49.40 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 7:15.20 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
# 显示指定的进程信息
$ top -p pid
# 显示指定的进程下所有线程信息
$ top -Hp pid
你也可以在交互式模式下按 k
键,然后输入PID来实现同样的效果。
$ top -o +%CPU
这个命令会按照CPU使用率从高到低排序进程,并显示进程列表。你也可以在交互式模式下按 Shift+P
键来实现同样的效果。
$ top -o +%MEM
这个命令会按照内存使用率从高到低排序进程,并显示进程列表。你也可以在交互式模式下按 Shift+M
键来实现同样的效果。
$ top -u dave
这个命令会只显示属于dave用户的进程,并显示进程列表。你也可以在交互式模式下按 u
键,然后输入用户名来实现同样的效果。
$ top -c
$ top -b
# 更新完10次后退出
top -n 10
# 表示更新周期为3秒
$ top -d 3