linux查看进程命令ps小记

Posted 奇妙之二进制

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux查看进程命令ps小记相关的知识,希望对你有一定的参考价值。

ps命令的参数太复杂了,这里应该有历史原因,就是各个版本没有统一。让人记忆起来太烦了,这里记录常用选项如下。

带-的选项

-f 显示更多的信息条目

hongjh@ubuntu:~$ ps -f
UID         PID   PPID  C STIME TTY          TIME CMD
hongjh     5524   5523  1 22:47 pts/19   00:00:00 -bash
hongjh     5543   5524  0 22:47 pts/19   00:00:00 ps -f
hongjh@ubuntu:~$ ps 
   PID TTY          TIME CMD
  5524 pts/19   00:00:00 bash
  5544 pts/19   00:00:00 ps
hongjh@ubuntu:~$ 

-e 显示所有进程。

-a 显示所有进程,但不包括没有关联终端的进程会话首进程,也就是说不会显示守护进程。

-l 显示更多条目信息,和-f类似,但条目上有点区别。

hongjh@ubuntu:~$ ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000   5524   5523  0  80   0 -  5652 wait   pts/19   00:00:00 bash
0 R  1000   5755   5524  0  80   0 -  7229 -      pts/19   00:00:00 ps

综上,我们最常用的组合就是ps -elf

-u
根据用户过滤进程:在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查询某个用户下的进程:
[mrzhang@192 ~]$ ps -u zhang
如果直接ps -u,则查询的用户就是当前用户。

不带-的选项

注意ps的选项带-和不带-是有区别的:
f 用ASCII字符显示树状结构,表示进程间的父子兄弟关系。

hongjh@ubuntu:~$ ps f
   PID TTY      STAT   TIME COMMAND
  5524 pts/19   Ss     0:00 -bash
  5819 pts/19   R+     0:00  \\_ ps f
  3822 pts/1    Ss     0:00 -bash
  5226 pts/1    S+     0:00  \\_ man ps
  5236 pts/1    S+     0:00      \\_ pager
  2649 pts/6    Ss+    0:00 bash

和前面组合起来:
ps -elf f

c
显示进程的真是名称,比如我们用ps -elf查看到的cmd只是显示了程序起来的命令行,但有时并非其真是名称,有时它可能是个链接:

hongjh@ubuntu:~$ ps -elf
F S UID         PID   PPID CLS PRI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0 TS   19 - 46354 -      19:18 ?        00:00:04 /sbin/init auto noprompt
1 S root          2      0 TS   19 -     0 -      19:18 ?        00:00:00 [kthreadd]
1 I root          4      2 TS   39 -     0 -      19:18 ?        00:00:00 [kworker/0:0H]
1 I root          6      2 TS   39 -     0 -      19:18 ?        00:00:00 [mm_percpu_wq]

这里的/sbin/init就是个链接,指向了systemd:

hongjh@ubuntu:~$ ps -elf c
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY        TIME CMD
4 S root          1      0  0  80   0 - 46354 -      19:18 ?          0:04 systemd
1 S root          2      0  0  80   0 -     0 -      19:18 ?          0:00 kthreadd
1 I root          4      2  0  60 -20 -     0 -      19:18 ?          0:00 kworker/0

e 在cmd列的命令好后面列出程序所使用的环境变量,也挺有用的。
在这里插入图片描述

以上是关于linux查看进程命令ps小记的主要内容,如果未能解决你的问题,请参考以下文章

小记:windows,Linux杀死端口进程命令

小记:windows,Linux杀死端口进程命令

ADB命令查看App主进程和私有进程PID小记

linux下查看进程的命令,ps grep 和 ps aux grep 有啥区别啊?

linux环境下 ps命令查看找不到java进程,使用ps-efgrep java可以找到java进程,为啥?

linux下查看进程(ps命令)