基础系列(五):I/O重定向

1、什么是数据流重定向

在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息,输入重定向是命令执行所调用的文件。这些信息默认是打印在屏幕上的。因为Linux默认输入是键盘,输出是显示器。而IO重定向就是指修改这些默认的一些东西,对原来系统命令的默认执行方式进行改变,可以用重定向来改变这些设置来完成某项工作。

2、数据流重定向的实现

<1>输入重定向的描述符  


描述符


输出重定向


COMMAND > stdout


stdout作为标准输出(覆盖)


COMMAND >> stdout


stdout作为标准输出(追加)


COMMAND 2> stderr


stderr作为错误输出(覆盖)


COMMAND 2>> stdout 


stderr作为错误输出(追加)


COMMAND &>  


标准输出和输出重定向至新文件(覆盖)


COMMAND &>>


标准输出和输出重定向至新文件(追加)

<2>输出重定向的描述符


描述符


输入重定向


COMMAND <  stdin > stdout


COMMAND以stdin作为标准输入,stdout作为标准输出


COMMAND <  stdin


COMMAND以stdin作为标准输入

<3>标准输出重定向详解

▲输入一段信息重定向

[[email protected] ~]# echo hello > file1
[r[email protected] ~]# cat file1
hello

▲再输入一段信息,内容将会被覆盖

[[email protected] ~]# echo sky  > file1
[[email protected] ~]# cat file1
sky

▲使用追加输出重定向,内容将不再会被覆盖

[[email protected] ~]# echo who >> file1
[[email protected] ~]# cat file1
sky
who
[[email protected] ~]#

注:2>、2>>和&>、&>>与上格式相同

<4>标准输入重定向详解 

用表示命令所要读取的文件

[[email protected] ~]# echo first line > file2
[[email protected] ~]# tr -d fir < file2
st lne
[[email protected] ~]#

先用<表示要读取的文件,再使用>表示定向的文件

[[email protected] ~]# echo second line > file3
[[email protected] ~]# tr -d second < file3 > file4
[[email protected] ~]# cat file4
 li

注:cat命令的二个特殊用法

▲cat << end of content,意思是此处文档

[[email protected] ~]# cat << EOF
> hello
> welcom to university
> EOF
hello
welcom to university
[[email protected] ~]#

▲cat << end of content > FILE,将输入的内容写入FILE

[[email protected] ~]# cat << EOF > file5
> i can fly
> EOF
[[email protected] ~]# cat file5
i can fly
[[email protected] ~]#
时间: 2024-08-07 18:16:52

基础系列(五):I/O重定向的相关文章

【C++自我精讲】基础系列五 隐式转换和显示转换

0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐式转换 定义:隐式转换是系统跟据程序的需要而自动转换的. 1)C++类型(char,int,float,long,double等)的隐式转换: 算术表达式隐式转换顺序为: 1.char - int - long - double 2.float - double //1)算术表达式 int m = 10; double n = m;//n = 10

Scrum入门基础系列之Scrum角色

Scrum入门基础系列之Scrum角色 5条回复 Scrum中定义有三个角色 产品负责人 ScrumMaster 开发团队 另外还会提到两个常见角色(经理和项目经理)在Scrum当中的职责. 产品负责人 职责 产品负责人最大的职责是为产品的投入产出比(ROI)负责,即最大化团队的投入产出比.在Scrum当中,由于Sprint是时间盒(即时间是固定的),且成本(软件开发中人力成本是最大的成本,其他忽略不计)也是固定的,那么最大化投入产出比就是如何做出最有价值的产品增量. 创建产品愿景 创建与维护产

Bootstrap&lt;基础十五&gt; 输入框组

Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输入添加公共的元素.例如,可以添加美元符号,或者在 Twitter 用户名前添加 @,或者应用程序接口所需要的其他公共的元素. 向 .form-control 添加前缀或后缀元素的步骤如下: 把前缀后后缀元素放在一个带有 class .input-group 的 <div> 中. 接着,在相同的 &

平面设计 计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

Spring基础系列6 -- Spring表达式语言(Spring EL)

Spring基础系列6 -- Spring表达式语言(Spring EL) 转载:http://www.cnblogs.com/leiOOlei/p/3543222.html 本篇讲述了Spring Expression Language —— 即Spring3中功能丰富强大的表达式语言,简称SpEL.SpEL是类似于OGNL和JSF EL的表达式语言,能够在运行时构建复杂表达式,存取对象属性.对象方法调用等.所有的SpEL都支持XML和Annotation两种方式,格式:#{ SpEL exp

SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC)的GIS专业理论知识. 5.其他相关知识. 通过前面几篇文章介绍了

Spring基础系列5 -- bean的基本用法

Spring基础系列5 -- bean的基本用法 转载:http://www.cnblogs.com/leiOOlei/p/3532604.html 本篇讲述了Bean的基本配置方法,以及Spring中怎样运用Bean. 主要内容如下: 一.      Spring中Bean的相互引用 二.      Spring中给Bean属性注入value 三.      Spring Inner Bean—内部嵌套的Bean 四.      Spring Bean Scopes—Bean的作用域 五.  

电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

用Qt写软件系列五:一个安全防护软件的制作(1)

引言 又有许久没有更新了.Qt,我心爱的Qt,为了找工作不得不抛弃一段时间,业余时间来学一学了.本来计划要写一系列关于Qt组件美化的博文,但是写了几篇之后就没坚持下去了.技术上倒是问题不大,主要是时间不够充裕.这段时间写几篇关于界面整体设计的博文,从最基础的界面元素开始,到最后构建一个页面元素丰富的桌面应用程序.Trojan Assessment Platform是一个原型设计项目,只是实现了有限的一部分功能.远远还称不上是一个评估平台.这里仅仅侧重于用Qt做界面的实现. 界面预览 首先还是看看