python输入重定向,linux输出重定向到文件
内容文件描述符输出重定向和输入重定向将在后面编写。
什么是Linux shell重定向?顾名思义就是改变方向的意思。什么方向?这就是输入和输出的方向。也就是说,Linux shell重定向是指改变输入和输出的方向。
先说输入和输出。
通常,数据是通过键盘输入的,shell输入的数据经过解释和编译,然后传递给内核执行。这是标准的输入方向,也就是键盘和程序的关系。
相反,输出是指计算机操作的结果通过shell等中间代理在外部显示器上的反映,称为输出,是程序到显示器的关系。
文件描述符linux充满了文件。文件,包括输入和输出的硬件设备。Linux为每个打开的文件分配一个ID。也称为文件描述符。
Linux程序在执行任何I/O操作时都会读取或写入文件描述符。文件描述符只是一个与打开的文件相关的整数。后面可能包括硬盘上的常规文件、FIFO、管道、终端、键盘、显示器甚至网络连接。其中,stdin、stdot、stderr默认开启,可以直接操作。
输出重定向我们平时的输出结果会直接显示在显示器上。也就是说,输出被提供有显示器。但是为了方便我们组织输出内容,比如一个网站的运行日志,如果输出内容直接显示在外壳上,通常是不使用的。记住,只有出了问题,才能找到那几天的输出结果。此时,您不只是输出和保存这些输出结果,所以您在任何地方都看不到它们。那一定很难。所以,我们希望将所有这些输出内容保存在一个文件中,然后当我们有一天想看到它时,打印这个文件的内容。
所以,总而言之:为什么我们必须重定向输出?因为有一些输出结果,我们暂时不直接在显示器上显示,而是保存。这是输出重定向。
标准输出重定向:将运行commandfile//command命令的输出结果以overlay的形式重定位到文件中并输出commandfile//将执行command命令的输出结果以overlay的形式重定位到文件中并重定向输出错误:command 2 file //命令的错误输出结果以overlay的形式重定位并输出到文件的command2file//中。//执行命令的错误输出结果被重叠并重新定位到文件中。并在正确错误输出的同时重定向:命令文件21 //以叠加的形式重定位命令命令输出的正确结果和错误结果并输出到文件command file 21 //命令以叠加的形式重定位正确输出结果和错误输出结果并输出到文件file的命令文件1。正确的输出结果被重写保存在file1中,错误的输出信息被重写保存在file2command file1 2file2 //正确的输出结果被重写保存在file1中,错误的输出信息被重写保存在file2的notes中。
表示覆盖,表示这里重叠的21中的“”符号表示转义,后者表示将其转义到文件描述符中,这是标准的。也就是说command应该已经写在命令文件里了,但是这里他只是省略了这个1,文件描述符必须跟在重定向符号后面才能进入什么操作是重定向?通常,输入数据是通过键盘输入的,但是这个输入重定向指定应该读取输入数据而不是来自键盘的输入数据。
使用标准输入重定向:command file//file的内容被覆盖为command的输入数据来执行命令继续读取command end //键盘,直到遇到终止符,也就是“end”,你才知道停止读取数据。当然,结束符是一个可定制的命令文件1 file。
如果未指定标准输出,默认值为0。也就是说,在命令文件中,本来应该写成命令0文件,现在他只需要省略这个0就可以输入重定向符号了。这个符号的作用是使用一个特定的分隔符作为命令输入的结束符号,不使用Ctrl D键也可以自由定义分隔符。请注意,如果遇到相同的分隔符,两个分隔符之间的内容将作为命令的输入写入(不包括分隔符本身)。也就是说,这个文件描述符不仅仅是0 )1) 2。然而,bash在打开文件时默认分配文件描述符。0 )1) 2这三个描述符是它们的默认描述符,但是可以手动更改。比如linux的sh。我忘了哪个shell的默认描述符是。有兴趣可以自己百度一下。这其实影响了我们反弹壳的运作。
而且这篇文章其实是我写的Linux shell的一个分支,但是我个人觉得这个东西还是很重要的,所以就拿出来单独写了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。