任务管理器的 top
top
命令比较像Windows里面的任务管理器,提供一个动态实时的系统状态检测,可以检测实时显示内存、CPU、进程的运行状态,主要在分析系统负载的时候比较常用。
官方定义为:
top - display Linux processes
状态默认实时显示,间隔为1秒。
使用的方法如下(选项超级多,其实不复杂):
1 | $ top -bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols] |
参数说明:
-d
: 改变显示的更新速度,或是在交互式( interactive command)按s
或d
-c
: 切换显示模式,共有两种模式,一是只显示执行程序的名称,另一种是显示完整的路径与名称;这个在定位执行命令的时候较常用-n
: 更新的次数,完成后将会退出-b
: 批模式操作,主要用来将top
的结果输出到其他程序或者文件;-i
: 不显示任何闲置不使用CPU的进程-s
: 安全模式,取消交谈式指令-pN1 -pN2 ... or -pN1,N2,N3 ...
:指定PID模式,仅仅监控N1,N2等信息-u/U user
:仅仅关注user的进程情况
常规使用
在输入top
命令以后,如果希望退出,可以数据q或者直接Ctrl+c即可。
还有一个情况,可以输入h进行帮助查询,用于进一步的交互操作。
通常情况下,最常用的就是输入top
命令,不加任何参数,这种情况下最希望看到的就是最占用系统资源的进程。
如下所示:
1 | $ top |
此时可以看到系统的基本信息,可以看到分为三个部分:
- 汇总信息:可以看到系统的运行状态,总的负载信息,运行总的任务,登陆的用户,CPU及内存的状态等等。
- Fields/Columns 头信息:用来标记接下来所有进程对应的信息
- Task 区域:每个运行程序的各种信息,在Fields/Columns有对应的,比如PID、用户、占用CPU、MEM及对应的命令等等。
显示完整命令
1 | $ top -c |
此时省去其他信息,可以看到dbus-daemon增加了路径信息为**/usr/bin/dbus-daemon**
设置信息更新次数
这个命令用于定量显示,比如刷新10次后退出,如下:
1 | $ top -n 10 |
设置信息更新时间
如果觉得太长或者太短,可以通过-d
来设置,或者在交互模式下输入d
或者s
来设置。
1 | $ top -d 0.8 # 设置为0.8秒 |
显示指定的进程信息
如果仅仅对某个进程感兴趣,如下指定PID即可。
1 | $ top -p 1234 # 对进程1234感兴趣 |
指定用户的进程信息
作为管理员or朋友,或许对某个用户感兴趣,比如user,此时可以仅仅显示该用户的进程信息
1 | $ top -u user |