Linux I/O重定向与管道

发布时间 2023-11-24 16:10:37作者: 大艺术家们

第六章 I/O重定向与管道

I/O重定向

创建计划任务,把脚本执行结果放到一个或者几个文件中以便第二天查看。这个过程就叫重定向。

常见的有三种文件描述符:0,1,2。这也是绝大部分进程都有的。0表示标准输入,可以理解为键盘输入;1表示标准输出,输出到终端;2表示标准错误,输出到终端。

3及以上为常规文件的表描述符。

 

ls >a.txt
说明:将ls的显示内容输出到a.txt中,这个将覆盖a.txt里面的内容。
ls >>a.txt
说明:将ls的显示内容输出到a.txt中,这个将追加到a.txt里面,不是覆盖。
ls 2>a.txt
说明:和ls > a.txt一样,只是>是正确输出流,2>是错误输出流,&>是正确和错误输出流,>>有相似用法。
tr 'a-z' 'A-Z' < 'abcdef'
说明:输入重定向,将’abcdef’输入。
cat <<EOF和cat >>a.txt<<EOF
说明:<<意思为此处文档,前一个语句说明将输入在EOF之前的内容整理成一份文档如何显示,后一个是说将EOF之前的内容整理成一份文档重定向输出到a.txt中。

 


 

管道

管道是Linux中的最古老的通信方式;我们把一个进程链接到另一个进程的一个数据流称为一个"管道";

管道使用竖线|连接多个命令,这被称为管道符。Linux 管道的具体语法格式如下:

command1 | command2
command1 | command2 [ | commandN... ]

当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。大部分的 Linux 命令都可以用来形成管道。