- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10标准输入输出及重定向 2
标准输入输出 当一个shell命令行启动时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 直接使用标准输入/输出文件存在以下问题: 输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。 重定向 重定向即把命令(或可执行程序)的标准输入(或输出)发送到指定的文件(或命令)。也就是说,输入可以不来自键盘,而来自一个指定的文件(或是某一命令产生的屏幕输出);输出可以不来出现在屏幕,而添加到一个指定的文件。 输入重定向 输入重定向大多使用在文件流的引入中,由于大多数命令都以参数的形式在命令行上指定输入文件的文件名,所以输入重定向并不经常使用。尽管如此,当要使用一个不接受文件名作为输入参数的命令,而需要的输入内容又存在一个文件里时,就能用输入重定向解决问题。 命令的使用格式 command file 命令command的输入原从file文件得到。 输出重定向 输出重定向比输入重定向更常用,很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后再用文本编辑器打开这个文件,就可以查看输出信息;如果想保存一个命令的输出,也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入 。 覆盖与追加 为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。 错误输出重定向 系统错误与标准输出使用的I/O管道不同,虽然他们都默认显示到屏幕上,但系统错误使用stderr通道而标准输出使用stdout通道。 我们在这里提到了一个设备文件/dev/null,它是我们常说的黑洞设备,无论你发送何种大小的文件它都忽略并删除。 从当前文档输入 我们可以使用入下的方式实现一个简单的文本输入器: [kevinz@stationXX kevinz] $ catfile ! This is test! ! [kevinz@stationXX kevinz] $less file This is test! 管道 将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,另一种是Linux所提供的管道功能。这种方法比前一种方法更好。 管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。 管道前过滤器的输出与管道后过滤器的输入数据类型需匹配,如果有不匹配的数据,后过滤器就会把不匹配的数据丢弃。例如: [kevinz@stationXX kevinz] $ls -l (屏幕回显是有颜色的) [kevinz@stationXX kevinz] $ls -l | less (屏幕回显是没有颜色的) 第七单元 标准输入输出、重定向及管道 学习大纲 标准输入、输出以及错误输出 重定向 输入结束符 管道 综合应用 1、标准输入、输出以及错误输出 标准输入:过滤器的数据来源。 标准输入stdin(0):默认是键盘 标准输出:过滤器的数据去向。 标准输出stdout (1):默认是终端屏幕 标准错误输出 :报错讯息与标准输出走不同的I/O通道。 标准错误输出stderr(2):默认是终端屏幕 2、重定向 重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向。 常见的重定向 输入重定向 输出重定向 追加重定向 错误输出重定向 双重输出重定向 2.1、输入重定向 有一些指令需要用户从标准输入(键盘)来输入数据,但某些时候如果让用户手动输入数据的话,将会相当麻烦。 使用“”来重定向输入源 例:mail -s “hello” lonny@
文档评论(0)