显示系统执行的进程

显示系统执行的进程

ps process status

ps 命令用于显示当前进程的状态,类似于静态的 Windows 的任务管理器

常用参数


常用用法

ps -ef

ps aux

然后用文件内容对其进行拆选,比如 | grep

选项

首先,ps 命令有三种选项格式:

各风格的 ps 命令选项可以混合使用,我们主要介绍 BSD 和 SYSV 两种风格的 ps 命令选项,这也是我们常用的两种风格


ps [options] [--help]

常用参数也就是 -e -C

以上这些选项不但可以单独使用,还可以组合使用(如下所示)。需要注意的是这些选项之间的组合是逻辑或的关系,不是逻辑与的关系

ps -C tail -t pts/0

tail 命令是在终端 pts/1 中执行的,如果这是与的关系,输出结果应该为空

ps -e -u lk 会把所有的进程都输出等等,例子很多。

输出字段参数

aux-ef

ps 命令的 aux 选项组合输出 USER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIMECOMMAND 等数据项,ps 命令的 -ef 选项组合输出 PID、PPID、TTY、TIME、CMD 等数据项。首先一个问题就是,ps 命令一共有多少数据项可以输出。这个问题很好回答,通过 L 选项很容易获取,一共有 168 个数据输出项。ps L 命令可以显示这 168 个字段的详细情况:

常用命令的选项情况:

ps -e | head -n 3

ps -el | head -n 3-l 参数的作用的是列出进程的最基本信息(展示多了几列)

C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高


ps -ef | head -n 3:一般用这个 -f 表示使用全格式


ps aux | head -n 3ps aux 结合之前的文件处理命令,非常好用

其他可能遇到的列

我们也可以自定义输出字段

ps -o colum_name0, colum_name1, colum_name2, colum_name3, colum_name4….

colum_name4ps L 的第一列

例如:

ps -C java -o pid,ppid

ps -C java -o pid,%cpu

排序参数

树形结构参数

特殊参数

应用实例

一般都是结合管道进行二次筛选

ps -ef | grep xxx

例如:

tomcat 所在进程搜索:

ps -ef | grep tomcat

ps -C java -o pid,command

ps aux | grep tomcat

获取 dmserver 的进程,然后 kill

kil $(ps -elf |grep dmserver | head -n 1 | awk '{print $4}')