linux重定向是指修改一些原本默认的东西,默认实现原始系统命令,比如简单的我不想看到显示输出,而是输出到一个文件中,你可以通过Linux执行这项工作。



Linux默认输入是键盘,输出是显示。您可以通过重新定义来更改这些设置。例如,当您使用WC命令时,您必须手动输入一个文本来计算字符的数量。如果你使用复位后,你可以直接使用的,已被写入,和<< ',并指向该命令,您可以直接统计文件的字符数。同样是相同的。你可以将屏幕输出到一个文件,然后在文件查看结果。可用于重定向命令输入和从默认位置重定向到其他位置的数据流输出,输入或输出数据流的位置称为处理;共同处理三,当然,手柄可以自行扩展,通用操作系统提供类似的功能。处理句柄描述处理



输入0键盘输入



输出1输出信息的提示窗口



2输出stderr错误信息提示窗口



默认的重定向输出操作符是1。在输入操作符之后,必须指定数据的读写位置,它可以是文件名或任何其他现有句柄。



若要指定对现有句柄的重定向,请使用字符的句柄号(句柄号),然后使用重定向。



例如,下面的命令可以重定向处理2(stderr)处理1(即stdout):2>1



下表列出了可用于重定向输入和输出数据流的运算符:



linux重定向操作符功能描述



>将命令输出写入文件或设备,而不是命令提示符或句柄。



<从文件中读取命令输入,而不是从键盘或手柄读取命令



>将命令输出添加到文件的结尾,而不删除文件中的信息。



>将一个句柄的输出写入另一个句柄的输入。



<从一个句柄读取输入并将其写入另一个句柄输出



|读取一个命令的输出写入另一个命令的输入;也被称为管道运营商



现在让我们回头看看上面的说法mysh > 2 > 1了解mylog.txt:



> mylog.txt意味着标准输出重定向到mylog.txt,相当于mysh 1 > mylog.txt;



2 > 1,这意味着将错误输出重定向到句柄1标准输出。总之,标准输出和错误的mysh命令执行过程中产生的输出将被重定向到mylog.txt。



重定向是非常强大的,可以尝试各种不同的组合,看看前面和后面的位置会发生什么变化。



在某些时候,我们可能不想记录任何标准输出和错误输出,可mysh > >空或空2 mysh > / dev /空2 > / dev /空。



I/O重定向详细说明



1,基本概念(这是理解知识背后的前提,一定要理解)



一个和我/ O重定向通常与FD,FD和壳通常是10、9或0 ~;



有3个B和FD常用的,分别是0(标准输入、标准输入),1(标准输出,标准输出),2(标准错误输出,标准错误输出),以及默认与键盘、显示器和监视器。



C的数据通道,改为(stdin),从指定的文件读取;



D,使用>改变发送数据信道(stdout,stderr),使其输出到指定的文件;



E和0与1相同。



F、IO重定向,管道stdout和stderr将会做好准备,将从stdin读取数据;



G、管| (管道):最后一条命令的接收下一个命令的标准输入stdout;



H和T命令复制一个副本的输出到文件而不影响原来的我/ O;



由我命令的执行过程中,bash(ksh):分析命令变量赋值命令替换(`和$())-重定向通配符扩展确定路径执行命令;



j()将命令组放入子shell中执行,也称为嵌套子shell。它具有非常重要的特性:继承父shell的标准输入、输出和输出。



常用于当前shell而不是重新启动shell,换句话说,没有启动shell。当使用此命令时,任何现有的环境都将被清除。



2。基本的IO



CMD >文件重定向到文件;



CMD > >文件重定向标准输出到文件(附后);



CMD 1 >场重定向到文件;



> 2 > 1 CMD文件重定向stdout和stderr到文件;



cmd文件重定向标准错误2 >的文件;



2 > >文件重定向stderr cmd的文件(附后);



> > 2 > 1 CMD文件重定向stderr和标准错误的文件(附后);



The CMD File2 CMD command takes the file file as the stdin, and the File2 file as the stdout;



>文件在读取和写入中打开文件;



CMD CMD命令<文件以文件作为标准输入;



CMD <<分隔符来读取输入文件,直到满足分隔符分界。



三.先进的IO



>使用系统调用dup(2)复制文件描述符n和使用结果为标准输出。



n标准输入是从文件描述符n复制的;



<关闭标准输入(键盘);



>关闭标准输出;



n表示n的输入是闭合的;



n表示n的输出是闭合的;



上面所有的表单都可以引导一个数字,当这个数字建立的文件描述符是由数字指定的,而不是默认的0或1:



…2 >文件运行一个命令并将错误输出(文件描述符2)指向文件。



2 > 1运行命令并合并其标准输出和输出(严格地说,文件描述符2是通过复制文件描述符1创建的,但效果通常与两个流相结合)。



我们阐述的2 > 2 > 1:1是FD2=FD1,这里并不是说FD2等于FD1的值,因为数据发送>渠道的变化,也就是说FD2的数据输出通道;FD1为数据输出通道;。如果是这样的话,变化似乎没有什么帮助,因为FD2默认输出和FD1默认输出都是班长,但当FD1是另一个文件,甚至是其他FD,这有一个特别的目的。问家务理解这。



执行0exec 1 > outfilename #打开文件outfilename stdout。



执行2 > errfilename #打开文件errfilename为stderr。



0,#接近fd0 exec。



执行1 > - #关闭FD1。



执行5 > - #接近FD5。



这就完成了对Linux重定向的学习。