一、标准输入,标准输出与标准错误输出
在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名:
| 文件 | 文件描述符 |
| 输入文件—标准输入 | 0(缺省是键盘,为0时是文件或者其他命令的输出) |
| 输出文件—标准输出 | 1(缺省是屏幕,为1时是文件) |
| 错误输出文件—标准错误 | 2(缺省是屏幕,为2时是文件) |
标准输入:从键盘输入数据,即从键盘读入数据。
标准输出:把数据输出到终端上。
标准错误输出:把标准错误输出到终端上。
默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端。
系统为这三个文件分配了文件标识符fd(file descripter).
在Linux系统下,一切皆是文件,对文件的操作,一般要用到文件标识符。它们的文件标识符,分别为0,1,2。他们的关系如下表:
| 文件描述符 | 名称 | 通用缩写 | 默认值 |
|---|---|---|---|
| 0 | 标准输入 | stdin | 键盘 |
| 1 | 标准输出 | stdout | 屏幕 |
| 2 | 标准错误 | stderr | 屏幕 |
1.输出重定向:
| Command > filename | 把标准输出重定向到一个新文件中 |
| Command >> filename | 把标准输出重定向到一个文件中(追加) |
| Command > filename | 把标准输出重定向到一个文件中 |
| Command > filename 2>&1 | 把标准输出和错误一起重定向到一个文件中 |
| Command 2 > filename | 把标准错误重定向到一个文件中 |
| Command 2 >> filename | 把标准输出重定向到一个文件中(追加) |
| Command >> filename2>&1 | 把标准输出和错误一起重定向到一个文件(追加) |
2.输入重定向:
| Command < filename > filename2 | Command命令以filename文件作为标准输入,以filename2文件作为标准输出 |
| Command < filename | Command命令以filename文件作为标准输入 |
| Command << delimiter | 从标准输入中读入,知道遇到delimiter分界符 |