Linux内容整理--过滤器输入输出及管道.doc

Linux内容整理--过滤器输入输出及管道.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内容整理--过滤器输入输出及管道

Linux内容整理--过滤器、输入输出及管道 1.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称为过滤器。 对过滤器和进程,存在着输入源与输出对象。 1.1 输入、输出、重定向 输入:过滤器的数据来源 标准输入stdin(0):默认是键盘 输出:过滤器的数据去向 标准输出stdout 1 :默认是终端屏幕 错误输出 :报错讯息与标准输出走不同的I/O通道 标准错误输出stderr 2 :默认是终端屏幕 重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向 标准输入输出 当一个shell命令行启动时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 直接使用标准输入/输出文件存在以下问题: 输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。 重定向 重定向即把命令(或可执行程序)的标准输入 或输出 发送到指定的文件 或命令 。也就是说,输入可以不来自键盘,而来自一个指定的文件(或是某一命令产生的屏幕输出);输出可以不出现在屏幕,而添加到一个指定的文件。 输入重定向 使用“ ”来重定向输入源 大多数工具都会以其后的文件名为输入源 有一些过滤器一定需要添加 以明确输入源 输入重定向大多使用在文件流的引入中,由于大多数命令都以参数的形式在命令行上指定输入文件的文件名,所以输入重定向并不经常使用。尽管如此,当要使用一个不接受文件名作为输入参数的命令,而需要的输入内容又存在一个文件里时,就能用输入重定向解决问题。 命令的使用格式 command file 命令command的输入原从file文件得到。 从当前文档输入 使用 让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入 需要一对字母、符号或字符串作为起始终结标识符 可以选择任意符号作为起始终结标识符 我们可以使用入下的方式实现一个简单的文本输入器: [root@samba ~]# cat file ! so great! ! [root@samba ~]# cat file so great! 输出重定向 使用 改变数据输出目标 范例: ls –l listfile 将当前目录下的文件以长模式显示,然后写入listfile文件 文件已有内容会被消除 输出重定向比输入重定向更常用,很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后再用文本编辑器打开这个文件,就可以查看输出信息;如果想保存一个命令的输出,也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入 。 覆盖与追加 使用 进行输出重定向,文件的原内容会被覆盖 ls –l listfile 使用 ,可以将输出追加入文件 ls –l listfile 为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。 错误输出重定向 系统错误与标准输出使用的I/O管道不同 默认情况下,系统报错会显示到终端屏幕上 使用2 将报错讯息重定向入一个文件 find / -type s 2 /dev/null 使用2 将报错讯息追加入一个文件 find / -name passwd 2 results 系统错误与标准输出使用的I/O管道不同,虽然他们都默认显示到屏幕上,但系统错误使用stderr通道而标准输出使用stdout通道。 我们在这里提到了一个设备文件/dev/null,它是我们常说的黑洞设备,无论你发送何种大小的文件它都忽略并删除。 当我们需要回显错误输出时可以采取如下方式: [root@samba ~]# find / -name passwd 2 results 1 /etc/pam.d/passwd /etc/passwd /usr/bin/passwd /usr/share/doc/nss_ldap-226/pam.d/passwd 其中&1就是指标准输出! 双重输出重

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档