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小记的主要内容,如果未能解决你的问题,请参考以下文章
linux下查看进程的命令,ps grep 和 ps aux grep 有啥区别啊?