管道与重定向
不要重复发明轮子。
把不同的命令连在一起使用。
shell 数据流
| 名称 | 说明 | 编号 | 默认 |
| -------- | -----: | :----: | : ---: |
| STDIN | 标准输入 | 0 | 键盘|
| STDOUT| 标准输出| 1 | 终端|
| STDERR| 标准错误 | 2 |终端|
管道用来组合不同的命令。
重定向用来保存某命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到一个文件。
分类 | 关键字 | 示例 |
---|---|---|
重定向 | >(stdout,覆盖,若文件不存在则创建) | echo 'haha' > outfile (将'haha'保存进入当前目录下的outfile |
重定向 | >>(stdout,追加,若文件不存在则创建) | echo 'haha' >> outfile (将'haha'保存进入当前目录下的outfile |
重定向 | 2>(stderr,覆盖,若文件不存在则创建) | ls -ld noexistingfile 2> outfile |
重定向 | 2>&1(stdout与stderr结合) | ls -ld noexistingfile 2>&1 outfile |
重定向 | <(stdin) | grep quant < /etc/passwd(查找passwd目录下的关键字quant |
管道 | 竖线(将一个命令的stdout作为另一个命令的stdin) | find / -user quant 2> errRecord 竖线 grep Download |