grep

管道命令(|),将左侧命令的标准输出转换为标准输入,提供给右侧命令作为参数。

grep接受标准输入作为参数。

grep root /etc/password

等价于

cat /etc/password | grep root

大多数命令不接受标准输入作为参数,只能直接在命令行输入参数。echo命令不接受管道参数。

echo "hello world" | echo # 不会有输出
echo "hello world" # 输出"hello world"

xargs

xargs命令的作用:将标准输入转为命令行参数。

# 管道左侧的标准输入,转为命令行参数hello world,传给第二个echo命令。

echo "hello world" | xargs echo # 输出"hello world"