经管营销RHCE7管道课件_第1页
经管营销RHCE7管道课件_第2页
经管营销RHCE7管道课件_第3页
经管营销RHCE7管道课件_第4页
经管营销RHCE7管道课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7-1单元 7标准I/O和管道7-2目标学习了本单元后,大家应该能够:把I/O频道重导向入文件使用管道连接命令使用for循环来逐项处理一组数值标准管道的输入与输出标准输入stdin 默认接受来自键盘的输入标准输出stdout 默认输出到终端窗口标准错误输出stderr 默认输出到终端窗口Stdin 文件描述码 0Stdout 文件描述码 1Stderr 文件描述码 2首先查看std先关的设备文件rootstation20 test# ls -l /dev/std*lrwxrwxrwx. 1 root root 15 Sep 24 2011 /dev/stderr - /proc/self/fd

2、/2lrwxrwxrwx. 1 root root 15 Sep 24 2011 /dev/stdin - /proc/self/fd/0lrwxrwxrwx. 1 root root 15 Sep 24 2011 /dev/stdout - /proc/self/fd/1rootstation20 test# 下面是一个例子查看标准输出和标准错误输出ls -la /etc/password /etc/passwd 上面输出的信息都显示在屏幕上,实际上第一导向标准错误流和第二行导向标准输出7-6把输出重新导向到文件STDOUT和STDERR可以被重导向到文件:命令 操作符号 文件名支持的操作符

3、号包括:1 把STDOUT重导向到文件 (1)2 把STDERR重导向到文件& 把所有(标准输出和标准错误输出)输出重导向到文件文件内容被默认覆盖。会后补。常见的重定向操作符命令 文件 -把命令标准输出重定向文件命令 文件 -把命令标准输出追加到文件最后命令 文件 -把命令中错误的输出重定向到文件命令2 把命令的错误输出追加到文件最后7-8把输出重新导向到文件例子当使用非根用户身份运行时,该命令会同时生出输出和错误:$find/etc-namepasswd 可以使用操作符号来保存输出和错误:$find/etc-namepasswdfind.out$find/etc-namepasswd2/de

4、v/null$find/etc-namepasswdfind.out2find.err 下一张幻灯片会显示结果这个是标准输出流,只输出正确的结果下面就是将错误消息导入到/dev/null(黑洞),只显示标准输出下面就是将标准输出导出到find.out,错误的导出到find.err.这个例子就是把文件作为输入发送给cat命令#cat :重导向所有输出: $find/etc-namepasswd&find.all 2&1:把STDERR重导向给STDOUT要通过管道来发送所有输出时有用 $find/etc-namepasswd2&1|less ():合并多个程序的STDOUT $(cal2007;

5、cal2008)|less (现场演示)下面就是上面的例子运行结果截图7-19重导向到多个目标(tee)$ 命令1 | tee 文件名 | 命令2把命令1的STDOUT保存在文件名中,然后管道输入给命令2使用:复杂管道的故障排除同时查看和记录输出下面就是一个重定向到夺目标的例子studentstation20 $ ls -lR /etc/|tee stage1.out |sort |tee stage2.out |uniq -c |tee stage3.out |sort -r|tee stage4.out7-21从文件中导入STDIN使用来重导向标准输入某些命令能够接受从文件中导入的STDI

6、N:$trA-Za-z.bash_profile 该命令会把.bash_profile中的大写字符都转换成小写字符相当于:$cat.bash_profile|trA-Za-z 7-22把多行发送给STDIN使用 终止单词 命令:从键盘把多行重导向给STDIN直到 终止单词 为止的所有文本都被发送给STDIN有时被称为就地文本(heretext)下面是我的测试例子7-24脚本:for循环对一组值中的每个成员执行行动例如:运行结果如下rootstation20 home# for NAME in boss bill oracle do ADDRESS=$NAME Message=projects

7、are due today“echo $Message|mail -s reminder $ADDRESS doneYou have new mail in /var/spool/mail/root7-26脚本:for循环继续也可以使用命令输出和文件列表:for num in $(seq 1 10)把从1到10的数字分配给变量$numseq X Y 会显示X到Y之间的数字for file in *.txt把通配文本文件的文件名分配给变量$file7-28结束 单元 7答疑总结标准I/O频道文件重导向标准输入()标准错误(2)管道会把标准输出重导向到标准输入for循环可以对程序的标准输出中的项目或一个明确列表中的项目执行命令实验例子(5,6)如果去掉括号的话就会出现如下结果Date会作为标准输出显示在屏幕邮件中的内容开头就没有了时间测试网络中计算机的网络连通性脚本rootstation20 test# vim alive.sh #!/bin/bashfor n in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论