收藏 分享(赏)

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

上传人:saw518 文档编号:6356523 上传时间:2019-04-09 格式:DOC 页数:4 大小:38.50KB
下载 相关 举报
Linux内容整理--过滤器、输入输出及管道.doc_第1页
第1页 / 共4页
Linux内容整理--过滤器、输入输出及管道.doc_第2页
第2页 / 共4页
Linux内容整理--过滤器、输入输出及管道.doc_第3页
第3页 / 共4页
Linux内容整理--过滤器、输入输出及管道.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Linux 内容整理-过滤器、输入输出及管道1.过滤器Linux 中的应用工具分为三种:1. 交互工具2. 过滤器3. 编辑器能够接受数据,过滤再输出的工具,称为过滤器。对过滤器和进程,存在着输入源与输出对象。1.1 输入、输出、重定向输入:过滤器的数据来源标准输入 stdin(0):默认是键盘输出:过滤器的数据去向标准输出 stdout (1):默认是终端屏幕错误输出 :报错讯息与标准输出走不同的 I/O 通道标准错误输出 stderr(2):默认是终端屏幕重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向标准输入输出当一个 shell 命令行启动时通常会自动打开三个标准文

2、件,即标准输入文件(stdin ) ,通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件( stderr) ,这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 直接使用标准输入/输出文件存在以下问题:输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。 重定向重定向即把命令(或可执行程序)的标准输入(

3、或输出) 发送到指定的文件 (或命令)。也就是说,输入可以不来自键盘,而来自一个指定的文件(或是某一命令产生的屏幕输出) ;输出可以不出现在屏幕,而添加到一个指定的文件。 输入重定向使用“ file so great! !rootsamba # cat fileso great!输出重定向使用改变数据输出目标范例:ls l listfile将当前目录下的文件以长模式显示,然后写入 listfile 文件文件已有内容会被消除输出重定向比输入重定向更常用,很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后再用文本编辑器打开这个文件,

4、就可以查看输出信息;如果想保存一个命令的输出,也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入 。覆盖与追加使用进行输出重定向,文件的原内容会被覆盖ls l listfile使用 ,可以将输出追加入文件ls l listfile为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell 提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。 错误输出重定向系统错误与标准输出使用的 I/O 管道不同默认情况下,系统报错会

5、显示到终端屏幕上使用 2将报错讯息重定向入一个文件find / -type s 2 /dev/null使用 2将报错讯息追加入一个文件find / -name passwd 2 results系统错误与标准输出使用的 I/O 管道不同,虽然他们都默认显示到屏幕上,但系统错误使用 stderr 通道而标准输出使用 stdout 通道。我们在这里提到了一个设备文件/dev/null,它是我们常说的黑洞设备,无论你发送何种大小的文件它都忽略并删除。当我们需要回显错误输出时可以采取如下方式:rootsamba # find / -name passwd 2 results &1/etc/pam.d/p

6、asswd/etc/passwd/usr/bin/passwd/usr/share/doc/nss_ldap-226/pam.d/passwd其中1 就是指标准输出!双重输出重定向使用和 2可以将一次操作的正确、错误输入,被单独地送到不同的地方:find / -perm -2 2 error results使用&将所有输入都送向同一个地方:find / -perm +6000 file文件描述符的概念:指的是程序发送输出和获取输入的地方。当执行一个程序的时候,运行该程序的进程打开了 3 个描述符:0(标准输入) ,1(标准输出) ,2(标准错误输出)所以,重定向标准输入 就是 1的缩写,2是标

7、准错误输出重定向。复制文件描述符cat x y 1 hold 2&11将标准输出重定向到文件 hold,然后,2&1 声明文件描述符 2 为文件描述符 1 的副本,这样做的结果是,标准输出和标准错误输出都被重定向到文件 hold 中。同样可以用 1&2 将标准输出重定向到标准错误输出。1.2 管道使用 | 将前一个过滤器的输出直接送入后一个过滤器的输入ls l | grep pass允许多重管道注意管道前过滤器的输出与管道后过滤器的输入数据类型匹配将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,另一种是 Linux 所提供的管道功

8、能。这种方法比前一种方法更好。 管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向) 。 管道前过滤器的输出与管道后过滤器的输入数据类型需匹配,如果有不匹配的数据,后过滤器就会把不匹配的数据丢弃。例如:rootsamba $ls -l (屏幕回显是有颜色的)rootsamba $ls -l | less (屏幕回显是没有颜色的)重定向、管道的常用范例ls l | more分屏显示当前目录下的文件cat fileb拷贝 filea 到 filebcat file.* file将数个小文件合并成一个文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > linux/Unix相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报