在Linux 过程的运行实例称作进程。有时在Linux工作时,您可能务必寻找目前早已运行的进程。
您可以使用许多命令来检索早已运行进程的信息,ps
与top
全是常见命令。
在教学中,我们在这里讨论如何在Linux运用ps
命令查看早已运行的进程以及查看进程的实际信息。
ps 命令
ps
命令的句法结构是ps [OPTIONS]
。源自历史时间兼容的重要原因,ps
命令接受几种不同种类选项。
UNIX风格选项,这种一般是在ps命令脚后跟一个扩折号。BSD风格选项,并没有扩折号。GNU长选项,脚后跟2个扩折号。
你可以混合使用各种各样选项,但在某些情况下可能出现分歧,因此最好坚持使用一种类型的选项。BSD和UNIX风格是常见。
没有任何的选项运行ps
命令,是一种比较方法。ps
命令将打印出四列信息,说明目前shell系统里已经运行两大进程。shell操作程序本身以及开启ps命令时运行的进程。
ps
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
四列分别标志PID
,TTY
,TIME
和CMD
。PID
是进程ID。
在大多数情况下,运行ps
命令时,顾客追求的最重要的信息是进程PID。把握PID可以使您终止常见问题进程。
TTY
进程控制主机的名称。TIME
进程运用CPU时间也,以min和秒为依据。CMD
创建该进程的命令名称。
上面的导出并非非常有利,因为她涉及的信息非常少。当使用其他选项运行ps
命令时,ps
命令的实际功效能够体现出来。
ps
命令接受许多选项,这类选项适用于说明特殊的一组进程以及进程的信息,但日常运用上只务必不可多得选项。ps
命令最常与以下选项组合使用。
PS命令BSD风格
如果以BSD的风格运行PS命令都是没有扩折号-
的,例如命令ps aux
,将使用BSD风格选项来查看进程信息。
a
选项很有可能呈现所有用户的进程,但不包括关联终端的进程以及进程的父进程。u
代表着一种用户至上的格式,给与进程的实际信息。
x
选项让ps
并没控制主机的进程。这包含于运行时在互联网上运行的进程,例如服务。
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
ps aux
命令将说明11个的列信息USER
,PID
,%CPU
,%MEM
,VSZ
,RSS
,STAT
,START
,TTY
,TIME
和CMD
。
已经描述PID
,TTY
,TIME
和CMD
列。那也是其他标志列说明,USER
运行进程的消费者。
%CPU
进程的cpu利用率。%MEM
进程的滞留空间大小占计算机物理内存的百分比。
VSZ
进程的虚拟内存设置规格,以KiB作为公司。RSS
进程使用物理学内存的大小。
STAT
进程状态代码,可以是Z
僵尸进程,S
早已休眠模式进程,R
早已运行进程等。START
命令开始的时间。
要打印进程树,请再加上f
选项。这也会标识ps命令说明父进程到子进程的树正视图。例如命令ps auxf
很有可能打印出进程树正视图。
ps
命令还允许我对导出来进行分类。例如,需要根据内存使用情况对导出来进行分类,则可以运行命令ps aux --sort=-%mem
。
ps auxf
ps aux --sort=-%mem
PS命令UNIX风格
ps -ef
命令是Unix风格最常常所使用的命令,e
选项标识ps
例举所有进程。f
例举进程的实际信息。
ps -ef
命令将说明8列信息包括UID
,PID
,PPID
,C
,STIME
,TIME
和CMD
。
UID
与BSD风格的PS命令的USER
列一样,说明运行进程的消费者。PPID
父进程的ID。
C
与一样%CPU
列一样,说明进程的cpu利用率。STIME
与START
列一样,说明命令运作时长。
要仅查看以特殊顾客运行的进程,请运行命令ps -f -U myfreax -u myfreax
,在这其中myfreax
用户名。
ps -ef
ps -f -U myfreax -u myfreax
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
打印出特殊列
如果你需要太几列的进程信息,能用o
选项,脚后跟要打印的字段,ps
命令很有可能仅呈现你特定字段。
比如要仅打印出PID
,COMMAND
的信息。我们将运行unix风格的命令ps -efo pid,comm
。或者BSD风格的命令ps auxo pid,comm
。
ps -efo pid,comm #UNIX
ps auxo pid,comm #BSD
PS命令与管道
ps可以通过命令与其它命令组合使用。如果你分页显示ps命令的信息,则可以通过管道符|
,传递给less命令,以达到分页查询的查看目的。
ps命令的输出也可以通过管道|
传递给grep进行过滤。比如仅呈现root客户的进程。
ps -ef | less
ps -ef | grep root
结论
对Linux问题进行故障排除时,ps
命令是常见命令之一。日常生活中有很多选项,一般绝大多数客户都选用ps aux
或ps -ef
来收集早已运行的进程的信息。
个人想法运用BSD风格,简单且已阅。要查看所有能用ps
选项的信息,请在智能终端中输入man ps
。如果您有任何问题或意见和建议,请随时。
