top
命令比较像Windows里面的任务管理器,提供一个动态实时的系统状态检测,可以检测实时显示内存、CPU、进程的运行状态,主要在分析系统负载的时候比较常用。
官方定义为:
top - display Linux processes
状态默认实时显示,间隔为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
命令,不加任何参数,这种情况下最希望看到的就是最占用系统资源的进程。
如下所示:
$ top
top - 22:23:20 up 461 days, 7:52, 18 users, load average: 1.82, 1.57, 1.45
Tasks: 773 total, 1 running, 768 sleeping, 0 stopped, 4 zombie
%Cpu(s): 10.1 us, 6.5 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32664832 total, 668020 free, 15683576 used, 16313236 buff/cache
KiB Swap: 16449532 total, 13409776 free, 3039756 used. 15787188 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7965 dbus 20 0 76092 8456 1704 S 7.5 0.0 40307:04 dbus-daemon
23460 root 20 0 397640 5560 3248 S 4.2 0.0 4738:26 accounts-daemon
4321 user 20 0 821828 104812 4584 S 3.2 0.3 7380:28 gsd-color
此时可以看到系统的基本信息,可以看到分为三个部分:
$ top -c
7965 dbus 20 0 76092 8456 1704 S 7.5 0.0 40307:04 /usr/bin/dbus-daemon
此时省去其他信息,可以看到dbus-daemon增加了路径信息为**/usr/bin/dbus-daemon**
这个命令用于定量显示,比如刷新10次后退出,如下:
$ top -n 10
如果觉得太长或者太短,可以通过-d
来设置,或者在交互模式下输入d
或者s
来设置。
$ top -d 0.8 # 设置为0.8秒
$ top -d 6 # 设置为6秒
如果仅仅对某个进程感兴趣,如下指定PID即可。
$ top -p 1234 # 对进程1234感兴趣
作为管理员or朋友,或许对某个用户感兴趣,比如user,此时可以仅仅显示该用户的进程信息
$ top -u user