本课程将为您讲解Linux下通过管道及重定向方式实现多命令协作,以处理复杂任务
开源文化
开源文化的核心理念之一就是不要重复发明轮子,很多开源软件都大量使用了其他开源软件或功能组建,同样,Linux中的命令也往往只实现某个特定的、单一的功能,复杂功能往往都是通过多命令协作完成的
管道及重定向
管道及重定向就是Linux多命令协作的基础机制
Linux系统中,多数命令都很简单,我们可以通过不同功能的命令组合在一起使用,达到完成某个复杂功能的目的。
Linux中,几乎所有的命令的返回数据都是纯文本的,纯文本格式又是绝大多数命令的输入格式,这让多命令协作成为可能。
Linux的命令行:为我们提供了管道和重定向机制。
Linux的Shell对数据流进行以下分类定义:
stdin 标准输入 编号为:0 默认:键盘
stdout 标准输出 编号为:1 默认:终端
stderr 标准错误 编号为:2 默认:终端
重定向用来控制终端数据流:
> 将标准输出以覆盖形式重定向到指定文件,如:ls > outfile
>> 将标准输出以追加形式重定向到指定文件,如:ls >> outfile
< 重定向标准输入,如:grep linuxcast < /etc/passwd
2> 重定向标准错误
2>&1 将标准错误合并到标准输出中
管道
管道“|”用以将一个命令的标准输出作为另一个命令的标准输入:
命令1 | 命令2
ls -l | grep out
管道通常用来组合不同命令
重定向通常用来保存输出信息