(1)管道和重定向
概述:
- 在Linux系统中,大多数命令功能都很简单,每个命令往往只实现一个或几个很简单的功能,我们可以通过将多个命令组合在一起使用,以达到完成某个复杂功能的目的;
- Linux中,几乎所有的命令的返回数据都是纯文本的,而纯文本格式的数据又是绝大多数命令的输入格式,这就为多命令协作提供可能;
- Linux的命令行为我们提供了管道和重定向机制来实现多命令协作。
命令行shell的数据流有以下定义:
名称 说明 编号 默认 STDIN 标准输入 0 键盘 STDOUT 标准输出 1 终端 STDERR 标准错误 2 终端 命令通过STDIN接收参数或数据,通过STDOUT输出结果或通过STDERR输出错误。
管道和重定向
通过管道和重定向我们可以控制CLI的数据流
分类 | 关键字 | 定义 | 例子 |
---|---|---|---|
重定向 | > | 将STDOUT重定向到文件(覆盖) | echo “hello”>outfile ls>outfile |
>> | 将STDOUT重定向到文件(追加) | ||
2> | 将STDERR重定向到文件(覆盖) | ls nothere 2>errorfile | |
2>&1 | 将STDERR与STDOUT结合 | ||
< | 重定向STDIN | grep linuxcast< /etc/passwd(将文件passwd中的内容作为命令的输入,即在文件passwd中查找linuxcast) | |
管道 | 竖线 | 将一个命令的STDOUT作为另一个命令的STDIN | ls -l 竖线 grep linuxcast |
- 管道通常用来组合不同的命令,以实现一个复杂的功能
- 重定向通常用来保存某命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到一个指定的文件。