重定向以及管道

描述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
下一篇 2017-11-19

相关推荐

  • 互联网安全之sudo使用指南

    一、前言 sudo是什么? sudo是系统管理指令;由于root用户权限过大,在实际生产过程中很少使用root用户直接登录系统,而是使用普通用户登录系统;但是如果普通用户要对系统进行日常维护操作时需要su到root用户,为了提高安全性,可以使用sudo授权某一用户在某一主机以某一用户身份运行某些命令;从而减少root用户密码知晓人,提高系统安全性。 &nbs…

    2015-06-23
  • ​redis cluster 安装指南

    公司的很多项目在使用redis主从。由于coder的各种毁灭性操作,迫切需要一个能带故障恢复的架构。因此新版的cluster,开始了测试。 一、Cluster 理论基础 Cluster介绍 Redis集群是一个提供在多个Redis间节点间共享数据的程序集。 Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis…

    Linux干货 2016-02-14
  • N25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [jizo@jizo ~]$ who | cut -d" " -f1 | uniq jizo  2、取出最后登录到当前系统的用户的相关信息。 [root@jizo ~]# who | tail -l jizo     …

    Linux干货 2016-12-18
  • 硬链接和软链接的区别

    硬链接和软链接在文件系统实现上的区别决定了两者之间功能上的不同,也就是说硬链接和软链在文件系统上两者实现的方式不同,让其各自具有不同的功能和特色,也决定了各自的优点和缺点。接下同文件系统上创建硬链接和软链接看各自的特点。 一文件系统上创建硬链接 下面命令是在文件系统上创建一个硬链接: ~]# ln test /testdir/t…

    Linux干货 2016-10-29
  • 用户 组 和权限 以及权限的 分类

    关于文件的安全我们要从3A验证 说起     1  Authentication:认证      2  Authorization:授权      3  Accouting|Audition:审计 由于系统文件的用户太多为了便于管理 我们便把系统的用…

    系统运维 2016-08-04
  • 开始学习Linux的一些建议

    建议读者范围 有开发经验者。 科研人员(由其Numrical)。 动手能力强的。 只是好奇,对于Linux只是浅尝辄止的就不建议继续往下看了。 端正学习态度 Linux不等于骇客(or Cracker)。 当然众所周知很多“黑客工具”都是Linux平台上的,我帮助过很多Linux小白发现他们殊途同归都是朝着类似Aircrack-ng去的。 但他们不知道的是:…

    Linux干货 2015-02-26