1.ps命令因为历史缘由,版本比较多,主要分为三种版本数组
1)Unix风格的版本,命令参数加单横线。好比ps -ef网络
2)BSD风格的版本,命令参数前不加任何横线。好比ps aux多线程
3)GNU风格的版本,命令参数前加双横线。好比ps --deselect --forest //显示全部进程,而且显示出进程的父子关系,就是显示出哪一个进程建立了哪些进程。ui
2.因为ps命令较为复杂,通常的管理员会记住某些有用的命令组合来提取有用的进程信息的参数。线程
好比说你要查看系统上运行的全部进程的一些有用的信息,Unix风格的ps -ef命令多是一个好的选择,它会提供给你(进程建立者uid,进程pid,进程父亲ppid,进程生命周期中的cpu利用率,进程启动时间,进程在哪一个个终端上启动,从启动到如今使用cpu的总时间,命令的名称),注意:TTY表明进程在哪一个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络链接主机进程。附上一张ps -ef的图片。rest
固然,BSD风格的ps也不赖,它说它也有相应的命令,也能看进程的一些有用的信息,好比ps ax能查看全部进程的粗略的信息(进程pid,进程在哪一个个终端上运行,进程的状态,该进程从开始到如今实际使用cpu的总时间,启动的命令),注意:许多管理员更喜欢使用BSD风格的缘由和这个STAT字段有关系,他能更详细的输出进程的状态。由于它使用的是双字符来输出状态,而Unix风格的STAT列是单字符的状态。第一个字符采用了和Unix单列同样的值(O表明正在运行;S表明在休眠;R表明可运行,正等待运行;Z表明僵化,进程已结束但父进程已不存在),第二个字符是Unix风格所没有的,是BSD独有的,更加详细地说明了进程的状态。(<:表明该进程运行在高优先级;N:表明该进程运行在低优先级;L:表明该进程有页面锁定在内存中;s:表明该进程是控制进程;l:小L表明该进程是多线程的;+:表明进程运行在前台)附上一张ps ax的图片。blog
ps ax只是显示了部分的信息,若是不够的话,还有它的大哥叫 ps aux能够显示更多的信息生命周期
比ps ax多出来的是USER列,表明启动这个进程的用户名称,%CPU表明当前这一刻,cpu占用的百分比,%MEM表明内存占用的百分比,VSZ表明的是进程在内存中占用的大小,单位是KB;RSS表明的是进程在未换出时占用的物理内存。进程
3.GNU长参数类型使用的比较少,可是我比较喜欢用它来查看一下进程之间的层级关系,ps --forest --deselect能够显示全部进程的树状图。图片
4.ps命令的参数不少,可是绝大多数场景下,上边列出的参数组合基本够用,若是还须要查看更多信息,能够查阅man手册。