在Windows下,大家肯定有用过任务管理器,特别是我们想看看我们的CPU的使用率、内存还剩下多少,又或者某个程序出现了异常还关闭不了时,大家肯定会使用任务管理器来强制结束这个程序。那么在Linux下有没有这样的工具呢?答案是肯定的,作为一个强大的操作系统,Linux怎么可能没有“任务管理器”呢?我们可以通过一系列的工具和命令来出色地实现我们在Windows中任务管理中所做的一切工作,构建一个Linux的“任务管理器”。虽然它却并不像Windows中的任务管理器那样直观,然而功能却非常强大。下面我就用Windows中的任务管理作为对比,介绍这些工具的使用。
一、查看应用程序
在Windows中的任务管理程序中,我们可以很轻松直观地看到我们打开的应用程序,而在Linux中要如何查看我们(即当前用户)所打开的应用程序呢?首先介绍一个最简单的命令——ps,它能将某个时间点的进程运行情况选取下来。我们可以这样做:
首先,我打开了一个浏览器程序firefox(中间有一些打开错误的信息,读者可以暂时忽略它),然后利用命令ps -l查看自己的bash打开的程序,从上面可以看到,root这个用户打开的程序有bash、firefox和ps。为什么会有ps这个程序?因为你刚输入ps命令,让ps这个程序启动来进行进程的查看,所以当然它也是root打开的一个进程。
下面我就给大家讲讲输出中各列的意思吧,因为后面的很多命令都会出现相似的信息。
F:进程的标志,用以说明说明进程的权限,通常为4或1,4表示此进程的权限为root,1表示此进程仅可进行复制(fork) 无法实际执行(exec)。
S:进程的状态,主要的状态有R(Running),S(Sleep),D(不可被唤醒的睡眠状态),T(停止状态),Z(“僵尸”状态)。
UID:进程的拥有者(用户)的ID号,root的ID为0;
PID:此进程的ID号
PPID:此进程的父进程的ID号,可以看到ps和firefox的父进程都是bash,当然了,因为都是由bash这个进程产生的。
C:CPU的使用率,单位为百分比;
PRI:即Priority,代表此进程被CPU所执行的优先级,数值越小代表进程越快被CPU执行。
NI:Nice,也代表进程被CPU所执行的优先级,不同的是PRI是系统指定的,而NI则可由用户指定,且PRI(new) = PRI(old)+ NI, 简单点来说,就是PRI不能由用户决定,但是用户可通过NI对进程的执行优先级进行调度,对于root其对NI的设置范围为-20~19,对于普通用户为0~19(避免一般用户抢占系统资源)
ADDR/SZ/WCHAN:都与内存有关,ADDR指出进程在内存中的位置,running为“-”,SZ表示用掉多少内存,WCHAN表示进程是否在运行中,“-”同样表示在运行中。
TTY:终端机位置;TIME:使用掉的CPU时间,注意不是系统时间;CMD:产生此程序的命令。