码迷,mamicode.com
首页 > 系统相关 > 详细

Linux学习 —bash的I/O重定向和管道

时间:2016-07-31 22:27:26      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:bashi/o重定向   linux   

        程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令

  也就是说程序=指令+数据,或者数据结构+算法

  程序必须能够读入输入然后经过加工来产生结果;程序获取的数据可以是变量、数组、列表、文件等等,程序产生出来的结果可以是变量、数组、列表、文件等等

  也就是说,程序都有读入数据和输出数据的要求

  当程序不指从哪里输入,输出到哪里,就是用默认的途径进行数据的交换,一般缺省的输入我们称之为标准输入,缺省的输出我们称为标准输出

  标准输入:键盘    标准输出:显示器

  在Linux中一切皆文件。这就意味着,任何一设备在系统中都有一个文件与之对应,因此我们就可以通过文件来对设备进行访问。对用户来讲,访问文件就是通过文件名来进行的,用户看到的是一个文件名,但对于内核来讲是一个数字,这个数字叫做文件描述符,内核就是利用描述符fd(file descriptor)来访问文件的。

  标准输入: 0

  标准输出: 1

  标准错误输出: 2

  I/O重定向:改变标准位置

  输出重定向:COMMAND > NEW_POS,COMMAND>>NEW_POS

  >  覆盖重定向,目标文件汇总的原有内容被清除

  >>  追加重定向,新内容会追加至目标文件尾部

#set -C  禁止将内容覆盖输出至已有文件中

    如果需要强制覆盖,可以使用 >|

#set +C  关闭覆盖已有文件的功能

  2>  覆盖重定向标准错误输出数据流

  2>> 追加重定向标准错误输出数据流


标准输出和错误输出各自定向到不同的位置

    COMMAND>FILE1 2>FILE2

合并标准输出和错误输出为同一个数据流的重定向

    &>  覆盖重定向

    &>> 追加重定向

输入重定向  <

通过学习tr命令来学习重定向输入

  tr [OPTION]... SET1 [SET2]

    选项

   -c  使用SET1的补集

   -d  删除SET1的字符,不替换

   -s  把连续重复的字符以单独一个字符表示

   -t  将第一个字符集对应字符转化为第二字符集对应的字符

例如  tr ‘a-z’ ‘A- Z’ < /etc/issue

输出结果为技术分享

   管道 | :把前一个命令的输出当做后一个命令的输入

   管道只能接受标准输入,不能接收标准错误,如果要接收标准错误,可以使用|&

   |tee  既能显示输出结果,又能进行重定向,还能继续进行管道处理

例如  ls | tr ‘\n‘ ‘ ‘ |tee /testdir/rootfile1

技术分享

 既能重定向输出,又可以显示输出结果,还能进行管道处理


Linux学习 —bash的I/O重定向和管道

标签:bashi/o重定向   linux   

原文地址:http://11887241.blog.51cto.com/11877241/1832568

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!