1.标准输入、标准输出和标准错误
编号 | 通道名称 | 描述 | 默认连接 | 用法 |
0 | stdin | 标准输入 | 键盘 | 仅读取 |
1 | stdout | 标准输出 | 终端 | 仅写入 |
2 | stderr | 标准错误 | 终端 | 仅写入 |
3+ | filename | 其他文件 | 无 | 读取/写入 |
重定向stdout可以阻止进程输出显示在终端。仅重定向stdout不会阻止stderr错误消息显示在终端。
2.输出重定向操作符
>file —— ">"前面的“1”可以省略,表示把输出重定向到文件;
>>file —— 把输出追加到文件;
2>file —— 把错误的重定向到文件;
2>/dev/null —— 把错误的丢弃掉,没有空格,找不回来
>file 2>&1 —— 把输出重定向到文件,把错误重定向到正确输出,最后的文件既包含错误的也包含正确的;
&> file —— 正确的的错误的都写入文件;
>>file 2>&1—— 把输出追加到文件,把错误重定向到标准输出,最后的文件既包含错误的也包含正确的;
&>>file —— 正确的的错误的都追加到文件。
重定向操作的顺序是非常重要的。例如:
> file 2>&1 —— 把输出重定向到文件,把错误重定向到正确输出,最后的文件既包含错误的也包含正确的,更倾向于使用合并重定向运算符&>file;
2>&1 > file—— 把错误重定向到输出,输出重定向到文件,错误的在终端窗口显示,文件中不包含错误的。
3.管道|
管道就是将前一条命令的输出作为下一条命令的输入。比如:
ls是在该目录下显示所有的文件和目录,管道就是将这些文件和目录用wc -l来统计它的行数。