一个程序或者进程需要从某个位置读取输入并且将输出写到某个位置,进程使用称为文件描述符的编号通道来获取输入并发送输出,系统中的进程或程序涉及的标准通信通道有三种:
标准输入(通道0):从键盘读取输入
标准输出(通道1):将正常输出发送到终端
标准错误(通道2):将错误信息发送到终端
也就是说,默认情况下是从键盘输入,并且标准输出和错误信息会输出到终端显示,那么我们可以通过I/O重定向来更改进程获取其输出或输出的方式,使得进程不是从键盘输入,也不是将输出和错误发送到终端,而是执行文件读取或写入。通过重定向可以将消息保存到通常发送给终端窗口的文件中,此外,我们还可以使用重定向来丢弃输出或错误,是的它们不会显示终端。
输出重定向举例:
>file 2>&1 将标准输出重定向到file文件,然后将标准错误作为标准输出重定向到相同位置(file文件)
&>file 将标准输出和错误信息都重定向到file文件中
2>/dev/null 将错误丢弃
2>&1 >/dev/null 把错误输出重定向到标准输出1(也就是屏幕),标准输出进入了黑洞;也就是说标准输出进了黑洞,错误输出打印到了终端