管道
管道是Linux系统提供的多任务协调机制的一种;
“|”为管道符;管道符左边命令的输出作为右边命令的输入;
管道分为匿名管道、命名管道(使用mkfifo创建,不介绍);
举例:
ls -la | grep "nodejs" //查找当前目录下包含“nodejs”的文件或者文件夹解释: 管道左边的ls -la 的输出本来要输出到屏幕中,但是它将输出流直接流入管道中,作为grep的输入;
I/O重定向
Linux提供的一种多任务协调机制;经常伴随着管道使用;
所谓的I/O重定向就是:把输出给A的重定向给B,或者从A处获得输入重定向到B处获取;
I/O重定向分为隐式、显式;
I/O重定向符号为:“>”(输出重定向) ">>"(追加重定向,防止覆盖原来的数据) “<”(输入重定向)
举例输出重定向:
ls -la > ./abc.txt //将ls列出的文件信息输入重定向写入abc.txt文件中,原本要写入到屏幕中 [此时是显式I/O输出重定向]
ls -la | grep "nodejs" //在匿名管道处,使用了隐式I/O输出重定向,ls输出流本来流向屏幕,但是改道至管道中,这其中是I/O重定向的作用
举例输入重定向:
cat < ./abc.txt //将abc.txt中的内容作为输入
cat < ./abc.txt | grep "nodejs" > ./bbc.txt //重定向输入,重定向输出