流
Linux shell(比如 Bash)接收或发送序列和字符串流形式的输入或输出。每个字符都独立于与之相邻的字符。字符没有被组织成结构化记录或固定大小的块。不管实际的字符串流进入或来自文件、键盘、显示窗口或其他 I/O 设备,都使用文件 I/O 技术来访问流。
Linux shell 使用 3 种标准的 I/O 流,每种流都与一个文件描述符相关联:
1. stdout 是标准输出流,它显示来自命令的输出。它的文件描述符为 1。
2. stderr 是标准错误流,它显示来自命令的错误输出。它的文件描述符为 2。
3. stdin 是标准输入流,它为命令提供输入。它的文件描述符为 0。
输入流通常通过终端击键为程序提供输入。输出流通常向终端输出文本字符。最初的终端是 ASCII 打字机或显示终端,但现在更多是指图形桌面上的文本窗口。
重定向
重定向输出
可以通过两种方法将输出重定向到文件。
n>
将输出从文件描述符 n 重定向到文件。您必须具有该文件的写权限。如果该文件不存在,将创建它。如果该文件已经存在,通常将覆盖所有现有内容,并且没有任何警告。
n>>
还可以将输出从文件描述符 n 重定向到一个文件中。这里也一样要求您具有该文件的写权限。如果该文件不存在,将创建它。如果该文件已经存在,输出将附加到现有的内容后面。
在 n> 或 n>> 中的 n 引用文件描述符。如果省略它,将执行标准输出。
&> 或 &>> 同时将标准输出和标准