资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,标准输入输出、重定向及管道,学习大纲,标准输入、输出以及错误输出,重定向,输入结束符,管道,综合应用,1、标准输入、输出以及错误输出,标准输入:过滤器的数据来源。,标准输入stdin(0):默认是键盘,标准输出:过滤器的数据去向。,标准输出stdout(1):默认是终端屏幕,标准错误输出:报错讯息与标准输出走不同的I/O通道。,标准错误输出stderr(2):默认是终端屏幕,2、重定向,重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向。,常见的重定向,输入重定向,输出重定向,追加重定向,错误输出重定向,双重输出重定向,2.1、输入重定向,有一些指令需要用户从标准输入(键盘)来输入数据,但某些时候如果让用户手动输入数据的话,将会相当麻烦。,使用“”来重定向输入源,例:mail -s“hello”,”改变数据输出目标,一般是另存到一个文件中供以后分析,而不再显示屏幕终端上。,范例:,df-h mydisk,将当前系统的磁盘分区的使用状况保存到mydisk文件中,不让它显示在屏幕上。,注意:如果原文件存在并有内容,那么新的执行结果会覆盖原文件内容。,2.3、追加重定向,在上节中提到,使用“”进行输出重定向,文件的原内容会被覆盖。那么有没有一个办法不覆盖原文件内容,只是追加在其后呢?,使用“”,就可以将正确的输出结果追加到一个文件中。,例“ls l listfile,2.4、错误输出重定向,如果一个指令执行错误时,也会在屏幕上显示错误提示信息。虽然它与标准输出一样都会将结果显示在屏幕上,但它们占用的I/O通道不同。,如果要将错误结果重定向到另一个地方则就不能再使用“”来实现了,得使用“2”将报错讯息重定向。,例:ds-h 2 erro,也可使用“2”将报错讯息追加入一个文件。,例:lt-l 2 eroo,2.5、双重输出重定向,如果用户想将正确的输出结果与错误输出结果一次性单独地送到不同的地方则可使用下面的双重输出重定向。,例:ls-l 2 error results,LS,-a,2,error,results,如果用户将不管是正确输出还是错误输结果都送到同一个指定的地方则可使用“&或&”来完成。,例:ls-l&,result,LS -l&erro,3、输入结束符,用户可以通过cat file来创建文件并为文件输入内容,输入结束后按下快捷键“ctrl+d”结束输入。,rootserver1#cat file,hello every body,this is a test,Ctrl+D,rootserver1#cat file,hello every body,this is a test,使用 file hello,quit,rootserver1#cat file,hello,4、管道,管道是Linux中很重要的一种通信方式,它是把一个程序的输出直接连接到另一个程序的输入。,常说的管道一般是指无名管道(例如,“|”),无名管道只能用于具有,”,亲缘,”,关系进程之间,的通信。,使用,“|”将前一个进程的输出直接送入后一个进程的输入。,例:ls-l|head-100,允许多重管道,例:ls l|head-100|more,5、综合应用,cat file1 file2,拷贝file1到file2,cat file1 file2 file3 fileall,将数个小文件合并成一个文件,ls l|more,分屏显示当前目录下的文件,练习,创建文件file1,并输入内容。,将当前的系统时间追加在file1文件之后。,分别输入一个正确与错误的指令,并将正确的输出结果保存在rigth文件中,将错误的信息保存在wrong文件中。,通过管道来显示“df h”指令执行结果的第2、3、4行。,结束,The End,Thanks,
展开阅读全文