Linux I/O重定向非常简单,但它通常是脚本和系统管理中的切换,了解如何使用它非常有用。
首先,所谓的I/O重定向是什么,I/O重定向仅仅是一个过程,即捕获一个文件、命令、程序、脚本的过程,甚至在输出的脚本代码块(代码块)中,然后输出捕获、作为输入发送给另一个文件、命令、脚本或。
如果涉及到我的I/O重定向,它涉及的文件标识符(文件描述符)在Linux系统的概念,系统指定一个文件为每个打开的文件,跟踪文件系统标识符,这里有一些C编程和文件句柄类似文件标识符是不同的数字代表不同的含义,默认情况下,系统占用了3个,分别是0标准输入(stdin)、1(stdout),标准输出,标准错误(stderr),2,3-9是保留标识符,该标识符可以被指定为标准输入、输出或错误作为临时连接。它通常解决了许多复杂的重定向请求。
标准输入通常是指键盘的输入标准输出,通常是指显示器的输出。
标准错误通常指向显示器。
请看下面的例子来描述他们之间的关系。
# LS / dev
这个命令列出目录中的所有文件,并在屏幕上输出结果。
下面是作为命令ls(从键盘输入的标准输入),并在屏幕上打印的是标准输出(目录目录内容)或返回标题,是重定向标准输入或输出更改为其他方式,请参见下面的示例或等效
# LS / dev 1 >文件名#注:1 和没有空格
上面的命令将一个命令,而不是在屏幕上显示一个文件的文件名输出标准。如果未指定文件标识符,则默认值为1,因此可以省略1。
如果将上述示例的>更改为,则如下所示
# LS / dev > >文件名
标准错误也可以重定向到文件。
# ls -量子阱/ dev 2 >文件名
显然,多量子阱是一种错误的参数。它通常在监视器上报告错误消息。但由于2标准错误(stderr)重定向到文件的文件名,所以显示器没有错误信息,并将信息写入文件。
下面的命令是将标准输出和错误定位到文件
# LS / dev >文件名
标准输出和标准错误在这里表示,其中正常输出和错误信息被写入文件名。
重新定义标准输入、输出和错误的文件标识符。
重新定义文件标识符可以使用i J命令指示文件标识符i被重定向到j,并且您可以将解释为取地址。
请看下面的例子:
E XEC 5 > 1
它指示文件标识符5指向标准输出,而这个命令通常用于临时保存标准输入。
同样的标准输入也可以重定向。请参考下面的例子
# grep搜索词
一般来说,grep命令在一个给定的文件中搜索字符串。上面的命令使用文件名作为代替键盘输入grep命令的标准输入。
正如我前面提到过的,系统为每个打开的文件指定一个文件标识符,这样系统就可以跟踪文件。默认的文件标识符是什么答案是0,标准输入,或者键盘输入。当然,这个文件标识符也可以自己指定。请参考下面的例子:
E cho 123456789 >文件名文件名字符串文件E XEC 3 < >文件名打开文件的文件名,并指定3 #读43写的一个第五字符的标识符文件,涵盖第五个字符,N E XEC 3 >说不间断关闭文件标识符
现在猫文件名文件的结果是1234.6789。
命令j文件名表示文件被打开,文件标识符是j。
表示关闭文件标识符。
有关关闭文件标识符的操作,请参阅以下内容
n关闭输出文件标识符n 1 >或>关闭标准输出stdout
还有一些其他命令,如下所示
>文件名或文件名
将文件文件名设置为空,即清空文件的内容,如果文件不存在,则创建一个空文件(相当于触摸命令):表示一个空输出,两个命令之间唯一的区别是文件名shell不能正常工作。