欢迎来到天天文库
浏览记录
ID:27191038
大小:208.50 KB
页数:17页
时间:2018-12-01
《《复重定向与管道》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重定向和管道薛卫1Unix设计准则每个程序只完成一件事情当需要新的工具时,最好是对现有工具进行组合长长的Dmesg输出2Unix准则的得失相似的工具很多工具功能满足不了需求基于文本的工具无法处理多媒体31、在Unix系统下需要编译一个比较大的程序,估计要20分钟。在编译过程中可能会出现一些警告或者错误信息。系统工程师不可能这二十分钟都盯着屏幕看。为此系统工程师希望shell能够把这这些编译过程中出现的警告或者错误信息能够保存在一个文件中,以供系统工程师或者程序开发人员后续查询所用。2、在开发程序的时,有时候是根据代码的行数来收费的,在Unix系统中开
2、发应用程序也是如此。为此系统工程师也希望能够有工具能够方便的来统计某个程序文件的行数。3、有时候系统管理员可能希望能够把几个文本文件合并起来。虽然通过复制、粘贴可以实现类似的功能。但是当需要被合并的文件比较多的时候,通过赋值粘贴来实现合并的目的,并不是很好的处理方法。等等。4重定向输出用>符号将命令输出写到文件Dmesg>file(覆盖式)防止覆盖set–onoclobber(设置)set+onoclobber(取消)强制覆盖Dmesg>
3、fileDmesg>>file(追加式)5重定向输入使用<操作符从文件重定向stdinSort4、treport6文件描述符、标准错误Unix中每个输入、输出源都由一个数字描述—文件描述符。三种系统文件描述符:0(输入)、1(输出)、2(错误)标准的重定向格式:command文件描述符定向符filenamen>原来是输出到文件描述符n,被>重定向到文件filename。以输入为例sort0errorsSort0results2>errors8组合标准输出、错误语法:Commandx>outfiley>&x将一种类型的输出重定向到一个文件5、,然后再将另一种类型的输出重定向到同一位置。执行顺序:自左向右Sort1>output2>&1Sort2>&11>output9组合标准输出、错误10抛弃输出有时候可能想要完全忽略标准输出或标准错误,可以使用/dev/null忽略输出Ls>/dev/null11抛弃输出Update>/dev/null下面举例说明:#catstd.sh#!/bin/shecho“stdout”echo“stderr”>&2#/bin/shstd.sh2>&1>/dev/nullstderr#/bin/shstd.sh>/dev/null2>&1第一条命令的输出结6、果是stderr,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出,因为当stdout重定向至/dev/null后,stderr又重定向到了stdout,这样stderr也被输出到了/dev/null。12管道线一个程序的标准输出可以自动发往另外一个程序的标准输入Catfile1file27、sortCal20088、less使用〉无效13管道线分流输入保存并输出管道线分流命令:tee[-a]file…例:Catfile1file29、sort1、Catfile1fil10、e211、teed112、sort2、Catfile1file213、teed1d214、sort3、Catfile1file215、tee-ad116、sortd1末尾追加文件14管道和重定向区别左边的命令应该有标准输出17、右边的命令应该接受标准输入左边的命令应该有标准输出>右边只能是文件左边的命令应该需要标准输入<右边只能是文件15条件执行前一条命令成功执行的条件下执行另一条命令语法:command1&&command2greproota&&sorta>contact前一条命令失败时执行另一条命令语法:command118、19、command216重定向符号重置I/O及错误20、><>>2>&1重定向错误输出n>将输出从文件描述符n重定向到文件。P323表17
4、treport6文件描述符、标准错误Unix中每个输入、输出源都由一个数字描述—文件描述符。三种系统文件描述符:0(输入)、1(输出)、2(错误)标准的重定向格式:command文件描述符定向符filenamen>原来是输出到文件描述符n,被>重定向到文件filename。以输入为例sort0errorsSort0results2>errors8组合标准输出、错误语法:Commandx>outfiley>&x将一种类型的输出重定向到一个文件
5、,然后再将另一种类型的输出重定向到同一位置。执行顺序:自左向右Sort1>output2>&1Sort2>&11>output9组合标准输出、错误10抛弃输出有时候可能想要完全忽略标准输出或标准错误,可以使用/dev/null忽略输出Ls>/dev/null11抛弃输出Update>/dev/null下面举例说明:#catstd.sh#!/bin/shecho“stdout”echo“stderr”>&2#/bin/shstd.sh2>&1>/dev/nullstderr#/bin/shstd.sh>/dev/null2>&1第一条命令的输出结
6、果是stderr,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出,因为当stdout重定向至/dev/null后,stderr又重定向到了stdout,这样stderr也被输出到了/dev/null。12管道线一个程序的标准输出可以自动发往另外一个程序的标准输入Catfile1file2
7、sortCal2008
8、less使用〉无效13管道线分流输入保存并输出管道线分流命令:tee[-a]file…例:Catfile1file2
9、sort1、Catfile1fil
10、e2
11、teed1
12、sort2、Catfile1file2
13、teed1d2
14、sort3、Catfile1file2
15、tee-ad1
16、sortd1末尾追加文件14管道和重定向区别左边的命令应该有标准输出
17、右边的命令应该接受标准输入左边的命令应该有标准输出>右边只能是文件左边的命令应该需要标准输入<右边只能是文件15条件执行前一条命令成功执行的条件下执行另一条命令语法:command1&&command2greproota&&sorta>contact前一条命令失败时执行另一条命令语法:command1
18、
19、command216重定向符号重置I/O及错误
20、><>>2>&1重定向错误输出n>将输出从文件描述符n重定向到文件。P323表17
此文档下载收益归作者所有