重定向以及管道

描述I/O设备的重定向

       I/O重定向与管道

一个程序最基础的部分就是输入数据,通过指令对其进行加工,输出出一个结果。在这个过程中,我们输入的数据(Input)和我们输出的数据(Output)合称为I/O设备。通常数据输入来自于我们的键盘和鼠标,即人为的输入。我们称这个输入叫做标准输入(STDIN)–0;而输出到终端端口的正确结果我们叫做标准输出(STOUT)–1;输出的错误结果叫做标准错误(STERR)–2。I/O重定向的意思就是改变默认的输入输出方式,即重新定义输入的方式,使标准输入不仅仅来自键盘,也可以来自上一个命令的标准输出等。

       把标准输出和错误输出重定向到文件

改变文件的输出位置,将其输出到指定文件中,其中包括标准输出和标准错误。对于标准输出我们可以通过 ” >  ”来重定向(原文件可不存在),对于标准错误通过” 2> ” 来重定向。具体操作格式为:

命令 操作符号 文件名

通过某些命令产生新的输出,通过操作符号将其输入到文件中(而不是默认的输出到屏幕中)

也可以通过符号”&>和2>&1″将两种输出重定向到同一文件。若目标文件中有数据,符号”>”将清空原有数据并覆盖。可使用符号”>>”追加到目标文件,标准错误同理。

      从文件中导入标准输入

从文件中导入标准输入,不在通过人为的敲打字符,我们称之为输入重定向,通过符号”<“实现。可通过输入重定向将需要的数据通过命令来输入。具体操作格式:

命令  操作符号 文件名

通过某些命令来改变文件的数据使其作为标准输入。(例如tr命令)

       tr命令

tr   [optins]    [set1] [set2]

tr命令可删除或转换字符(将第一字符集set1的内容转换为set2),通过tr命令我们可以修改文本后将其作为标准输入。例如tr  ‘a-z’  ‘A-Z’就是将指定文本的小写字母转换为大写字母。tr命令也可预定义字符集,即tr  ‘[:lower:]’  ‘[:upper:]’

常用的选项

-c :取字符集的补集

-s:将连续重复的字符转换为一个字符

-d:删除字符集里面的字符

-t:将第一字符集的内容转换成第二字符集的内容

      单行重定向与多行重定向

使用单行重定向时,在某些交互式重定向中(如’cat  >  file’),输入文本后需要Ctrl+d退出,而且输出的是纯文本,并不能识别命令。多行重定向可以改变这些缺陷,多行重定向就是在文本开始时设置终符’>>EOF'(此时EOF为终止符)只有输入终止符才算结束输出,而且多行重定向中可识别命令,使重定向的文本内容更加灵活。

管道

管道技术就是使用符号”|”将多个命令链接在一起,使前一个命令的标本输出作为后面命令的标准输入。例如cmd1|cmd2|cmd3中,首先将cmd1的标准输出作为cmd2的标准输入,再将其标准输出作为cmd3的标准输入,以此类推。管道技术默认不可转换标准错误,我们可以通过”2>&1和|&”将其转换。

我们也可以在管道中使用tee命令将输出重定向到多个目标。即在管道中加入”tee -a file”,这样我们就可以在管道的中间查看和记录不同阶段的输出,便于在出现问题时排除故障。

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88644

(0)
yoyiccccyoyicccc
上一篇 2017-11-19 17:29
下一篇 2017-11-19 20:41

相关推荐

  • linux之netfilter与 iptables学习

    Linux之netfilter与iptables学习 一、为什么我们的主机需要防火墙 二、Linux下防火墙如何实现 三、四表五链学习 四、主机防火墙 五、网络防火墙 六、iptables命令学习 七、主机防火墙规则备份与恢复 ====================================== 一、为什么我们的主机需要防火墙?  &nbs…

    Linux干货 2016-06-23
  • Linux基础之sed流编辑器详解

    之前介绍了三大文本编辑器的grep,这里介绍比grep功能更强的sed流编辑器 sed是什么? sed是Stream EDitor的缩写,man中对sed的简介为 sed – stream editor for filtering and transforming text 它的主要功能是对文本的过滤与替换。 sed的工作原理 sed的工作过程:…

    Linux干货 2016-08-15
  • 如何修复Ubuntu 12.04上时间不正确的问题

    大家好: 今天跟大家分享下如何修复ubuntu 12.04上时间不正常的问题。 1–首先打date查看系统的时间是否正常 martell@cnux10:~/sistes/sha-mmb-o2o2o$ date  Thu Dec  1 09:15:47 UTC 2016 martell@cnux10:~/sistes/sha-m…

    Linux干货 2016-12-04
  • 第一周课程练习

    马哥教育网络班22期+第一周课程练习 1、描述计算机的组成及其功能   CPU(运算器和控制器),存储器(内存和外存),输入/输出设备。     (1)运算器:对数据进行加工处理(包括算术运算与逻辑运算);     (2)控制器:负责从存储器取出一条指令,并指出下一条指…

    Linux干货 2016-08-15
  • keepalived的原理及安装应用

    keepalived的主从模式,keepalived的日志功能和主主模式

    2018-03-13
  • Centos6.5上搭建openvpn

    一、openvpn原理 二、安装openvpn 三、制作相关证书     3.1 制作CA证书     3.2 制作Server端证书     3.3 制作Client端证书 四、配置Server端 五、配置C…

    Linux干货 2016-04-28