由 procps-ng 的 ps 提供
$ ps f | wc -l
225
$ ps -e | wc -l
410
$ ps | wc -l
4
ps -e
显示所有进程,并且ps
仅显示当前终端作为控制终端的进程。显示什么过程ps f
?谢谢。
答案1
在 Ubuntu 系统上,该命令ps f
将显示与显示的完全相同的进程ps
,但使用 ASCII art 进程树。
该选项是修改 的输出格式的选项ps
。它列在ps
Ubuntu 手册的“输出修饰符”部分下。因此,它不会修改将显示的进程。
使用它一起使用另一个选项(例如ps f -e
)将仅修改命令的输出格式,而不修改进程的选择。
答案2
您最初写的是ps f
,但现在的问题是ps --forest
。两者并不相同...
$ ps f
PID TTY STAT TIME COMMAND
27614 pts/1 Ss 0:00 -ksh
27656 pts/1 R+ 0:00 \_ ps f
3356 pts/0 Ss 0:00 -ksh
3370 pts/0 S+ 0:06 \_ ssh mercury7
$ ps --forest
PID TTY TIME CMD
27614 pts/1 00:00:00 ksh
27658 pts/1 00:00:00 \_ ps
ps g
它们包含与和相同的范围ps
例如
$ ps g
PID TTY STAT TIME COMMAND
3356 pts/0 Ss 0:00 -ksh
3370 pts/0 S+ 0:06 ssh mercury7
27614 pts/1 Ss 0:00 -ksh
28932 pts/1 R+ 0:00 ps g
$ ps
PID TTY TIME CMD
27614 pts/1 00:00:00 ksh
28755 pts/1 00:00:00 ps
答案3
根据手册页,还不清楚ps f
vs ps --forest
。
f
:
ASCII 艺术流程层次结构(森林)。
--forest
:
ASCII 艺术流程树。
但两者都列在“输出修饰符”而不是“输出格式控制”。所以它们有不同的输出。
f
那么vs的确切区别是什么--forest
? (免责声明:我不是 UNIX 专业人士,所以我还没有阅读 UNIX 的源代码ps
)
它--forest
显示的是一棵有一个根的“树”(甚至被称为“森林”),这意味着进程的一个SID(会话ID,大致与当前登录会话相关),因此不显示任何进程不同的根。另一方面f
,显示了来自不同根源的过程,例如森林。
所以它们的用例是:
ps --forest
当您想要获取在此会话中启动的进程的“树”时使用。ps f
当您想要获取当前用户在任何会话中启动的进程“森林”时使用。