linux 学习管道 和重定向

开源文化的理念之一 就是不要重新发明轮子

在linux 系统中大多是都是非常简单的命令,每个命令都是实现一个或者几个简单的功能,我们可以将不同的命令组合在一起 来达到复杂的功能的目的,在linux中因为几乎所有的命令都是以纯文本来返回的,而纯文本又是绝大多数命令的输入格式,这就让多命令有了协作的可能,linux为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向来完成的。

shell 通过标准输入来输入信息  编号0,正常信息来通过标准输出输出,编号1,通过标准错误来输出错误信息,编号2。

重定向  重定向数据流

关键字 >  将标准输出重定向到文件,如果文件存在则覆盖 比如 ls > outfile 

关键字>> 将标准输出重定向到文件 如果文件存在则追加  比如 ls >>outfile 

<  重定向到标准输入 

关键字  2>将标准错误重定向到文件  (覆盖)ls 2> err (err文件为空是没有反应的,因为没有错误)查找不存在的文件  ls -l  sfsdfd 2> err 

关键字  2>>将标准错误重定向到文件  (追加)

管道 将一个命令的标准输出,来作为另一个命令的标准输入参数。来实现多命令的协作

比如 查找 详细信息包含P的 文件:

ls -l | grep P 

如果 输出的命令还要作为下一个命令的标注输入,则一定要去掉上一个输出的标准错误信息 可以将上一个标准错误重定向的 /dev/null ,重定向到这个文件的 信息都会丢失掉

原文地址:https://www.cnblogs.com/dubaokun/p/3378280.html