在linux中大多数命令都很简单,为了完成复杂的操作,我们需要将这些命令组合使用。
linux中绝大多数的命令都是返回纯文本格式的数据,而命令的输入格式也是纯文本,这就让命令的组合调用成为可能。
管道和重定向机制就是为了多命令的协作工作。
命令行shell的数据流有如下定义:
名称 | 说明 | 编号 | 默认 |
STDIN | 标准输入 | 0 | 键盘输入 |
STDOUT | 标准输出 | 1 | 终端 |
STDERR | 标准错误 | 2 | 终端 |
命令通过STDIN接受参数,通过STDOUT输出结果或通过STDERR输出错误
重定向:
> 将输出信息覆盖到文件 例:date -h > date.help
>> 将输入信息追加到文件的末尾
< 重定向输入 例:grep wangdong < /ect/passwd
通过在>、>>前加入数字可以指定输出的类型,如2>表示重定向输出错误,1>表示重定向输出结果,还可以通过&符号将输出错误和输出结果一起重定向 2>&1
管道:
| 将命令的输出作为后面命令的输入 例:ls -l | grep "*.log"
总结:
管道通常用来组合不同的命令来实现复杂的功能
重定向用户保存命令的输出信息或错误信息