linux:为什么如果将 ps 通过管道传递给 grep,则 grep 过滤器正在处理输出中?管道是如何工作的?
linux: why if you pipe ps to grep, grep filter is in process output ? How does pipe works?
使用像 ps aux |grep foobar
这样的典型命令,为什么 grep foobar
进程在输出中?
我在想 ps aux
输出被传递给 grep 以通过 grep 参数中的模式过滤行但是在你执行时 ps aux
grep 仍然没有执行(至少它是什么我以为,我肯定错了),稍后执行。
那么管道是怎么工作的呢?
原因很简单:
- OS 启动
grep
进程(作为管道目标)。
- OS 启动
ps
, 找到 grep
运行.
- OS 将
ps
的标准输出连接到 grep
的标准输入。
使用像 ps aux |grep foobar
这样的典型命令,为什么 grep foobar
进程在输出中?
我在想 ps aux
输出被传递给 grep 以通过 grep 参数中的模式过滤行但是在你执行时 ps aux
grep 仍然没有执行(至少它是什么我以为,我肯定错了),稍后执行。
那么管道是怎么工作的呢?
原因很简单:
- OS 启动
grep
进程(作为管道目标)。 - OS 启动
ps
, 找到grep
运行. - OS 将
ps
的标准输出连接到grep
的标准输入。