【Linux】ps -ef 与 ps aux 的区别及 “|” “grep” 的详解

 前言:虽然 ps -ef 与 ps aux  命令都能查看进程运行情况,但两者之间还是有一些细致区别。

一、格式与输出

1、ps -ef/ps -Af:

        -e是显示所有进程,包括其他用户的进程。-A属于-e别名,功能相同。

        -f :显示更多的列信息,例如UID、PID、PPID、C、STIME、TTY、TIME和CMD

输出示例:

UID        PID  PPID  C STIME TTY          TIME CMD
root      2183     1  1 16:06 ?        00:01:03 java -jar example.jar

2、ps -aux:

         a:显示所有用户进程,包括其它用户进程。

         u:以用户为主的格式显示,包含用户名和CPU内存使用率信息。

         x:显示没有控制终端的进程(如后台进程)

输出示例:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2183  1.0  0.5  123456  7890 ?        Ssl  16:06   0:01 java -jar example.jar

二、列内容区别

1、在 ps -ef  中,可以看到PPID列,它可以更好的帮助我们了解父子进程

2、在 ps aux 中, 包含了%CPU和%MEM列,它可以更好地帮助我们更直观的监控内容信息

三、使用场景区别 

1、ps -ef :查看所有进程及其详细信息,并显示父进程 ID。

2、ps aux:重点在资源使用情况,像CPU和内存的占用率等等。 

四、为什么两个命令中都有  “| grep”?

答:

        1、 “|” 我们称为管道符。它的作用是在 Unix/Linux中将一个命令的输出连接到另一个命令的输出。通过管道符,我们可以连接多个命令,让数据在它们之间传递。

        2、“grep” 的作用是过滤是 “java” 的相关进程。

举个例子:

          假设我们有以下命令:echo -e "apple\nbanana\ncherry" | grep "an"

分析一下其中的意思:

        ①echo -e "apple\banana\ncherry"  会输出三个文本,分别是“apple”、“banana”、“ncherry”

        ②“|” 会将输出结果传递给 grep 命令

        ③grep "an" 会筛选出包含 “an” 的结果

即最终输出结果为:banana 。

可以看到,grep 命令 相当于SQL中的模糊查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值