Linux系统重定向和管道

1、标准输入和标准输出

 

           程序:指令+数据

                  读入数据:input

                  输出数据:output

 

    Linux给程序提供了三种I/0设备:

         

         标准输入(stdin—0 默认接受来自键盘的输入;

         标准输出(stdout–1 默认输出到终端窗口;

         标准错误(stderr—2 默认输出到终端窗口;

 

    I/O重定向:改变默认位置;

 

         Stdoutstderr可以被重定向到文件:

    

             命令   操作符号   文件名

 

                > stdout重定向到文件,会覆盖原有文件;

                >>stdout重定向到文件,在原有文件上追加,不覆盖;

                2>stderr重定向到文件,会覆盖原有文件;

                2>>stderr重定向到文件,在原有文件上追加,不覆盖;

                &> 2>&1)把正确输出和错误输出都重定向到文件,会覆盖原有文件;

                &>> 2>>&1)把正确输出和错误输出都追加重定向到文件,不覆盖原有文件;

                ():合并多个程序的stdout   

                         例:(cal 2007;cal 2008> all.txt

 

             为了防止重定向误覆盖原有文件,可以使用set 命令禁止将内容覆盖:

              

              set  -c :禁止重定向内容覆盖已有文件,但可追加;

                       强制覆盖使用  >|

              set  -c:解除重定向覆盖原有文件,允许覆盖;

 

2、tr命令:

 

           tr [OPTION]… SET1 [SET2]

                -c:取字符集的补集;

                -d–delete:删除所有属于第一字符集的字符;

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

                -t–truncate-set1:将第一个字符集对应的字符转化为第二个字符集对应的字符;

   

 3、从文件中导入stdin

             

          使用 < 来重定向标准输入

           

      例:tr  a-z  A-Z  <  /etc/issue该命令把/etc/issue中的小写字母转换成大写字母;

          tr  -d  abc  < /etc/fstab 删除fatab文件中的所有abc中任意字符;

          [root@centos6 ~]# cat  >  filea

           nihao

           linux

           haha

          按ctrl+d离开,可以使用文件代替键盘输入;

     

      使用 “<<终止词”命令从键盘把多行重定向给stdin,直到终止词位置的所有文件都发送给stdin

          

           例:[root@centos6 ~]#mail -s  -u aa   <<end

               nihao aa

               haha

               end

               输入end回车邮件就会发送;

 

4、管道:

      

       管道(使用符号 | 表示)用来连接命令:

    

         命令1 | 命令2 |命令3 | …….

 

       将命令1stdout发送给命令2stdout,由命令2stdout发送到命令3stdout

       Stderr默认不能通过管道转发,可以利用2>&1|&实现;

 

           命令1 | tee 文件名 | 命令2

                例:ls  |tee a1.txt | grep -i ^a

         把命令1stdout保存到文件中,然后管道再输入给命令2

原创文章,作者:zhengyibo,如若转载,请注明出处:http://www.178linux.com/27472

(0)
zhengyibozhengyibo
上一篇 2016-08-04 14:41
下一篇 2016-08-04 14:41

相关推荐

  • 高级文件系统管理(swap,RAID,LVM)

    交换分区wasp swap文件系统:     linux上的交换分区必须使用独立的文件系统;         其文件系统的system ID必须为82 创建swap设备,文件系统,使用mkswap命令 创建步骤:   &…

    Linux干货 2016-08-30
  • ansible批量部署主从DNS

    什么是DNS服务DNS的解析流程分析递归查询迭代查询DNS相关的术语说明生产环境中的应用Bind9常见配置说明使用ansible自动部署主从DNS 什么是DNS服务 DNS(Domain Name Service)是Internet上用于名称解析的服务,简单来说,就是将域名转换为IP地址的服务(正向解析),也可以用于将IP地址解析为对应的…

    Linux干货 2016-06-29
  • Linux系统目录结构

    root 管理员家目录home 普通用户家目录bin 系统启动和运行可能会用到的普通命令sbin 管理类命令proc 虚拟文件系统,由内核参数映射而来usr 系统软件资源存放位置include 存放C/C++头文件的目录lib 库文件lib64 64位系统库文件tmp 临时文件目录boot 引导加载器所需文件,系统所需图片保存于此etc 配置文件sys 虚拟…

    Linux干货 2018-03-03
  • linux之/home目录转移分区。

    linux之/home目录转移分区。     I,基本思路,将/home目录的数据转移到新的分区,再将/home目录挂载到新的分区。     II,添加硬盘,进行分区,添加新硬盘不重启机器识别命令echo “- – -”  /sys/class/scsi_host/host#/scan,然后进行 …

    Linux干货 2017-06-19
  • nmap ncat tcpdump浅析

    nmap 的使用 nmap — 网络探测工具和安全/端口扫描器 Usage:nmap [ <扫描类型> …] [ <选项> ] { <扫描目标说明> } 扫描目标说明 -iL inputfilename (从列表中输入) 从 inputfilename中读取目标说明 [root@localhost&…

    Linux干货 2017-03-15
  • 压缩及解压缩工具

    压缩和解压缩工具      压缩比      目的:时间换空间      CPU的时间 –> 磁盘空间 常见的压缩及解压缩工具: compress/uncompress, .Z gzip/gunzip, .gz bzip2…

    Linux干货 2016-08-22