【转】Linux 之 数据流重定向】的更多相关文章

一.什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧.数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr). 简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息.这些信息默认是打印在屏幕上的. 那么什么时数据流重定向呢?从字面上理解就是改变数据流的流向,使之流向指定的文件或设备.例如,把执行命令所回传的正确信息(标准输出信息)流向一个文件,而将所回传的错误信息(标准错误输出)流向别一个文…
首先说一下什么是数据流重定向,所谓数据流重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序,或者脚本. 谈到数据流重定向,我们首先需要了解文件描述符的概念.对于linux内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向进程等返回一个文件描述符.按照惯例,unix系统shell把文件描述符0与进程的标准…
数据流重定向(redirect)就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方,例如文件或设备(打印机之类的).这玩意在Linux的命令行模式下很重要,尤其是想要将某些数据存储下来时! 1 什么是数据流重定向 数据流重定向就是将数据标准输出和数据标准错误输出分别传送到文件或者设备中去: 分为以下三种: 标准输入 (stdin) :代码为 0 ,使用 < 或 << 标准输出 (stdout)\(standard output):代码为 1 ,使用 > 或 >…
概念一:数据流重定向 数据流分输入流和输出流,还有一个标准错误流,负责管理出错信息,比如一般的命令的输出会输出到屏幕上,我们可以用重定向让他输入到某个文件内. 相关操作: 1,标准输入(stdin):<与<< <:输入 <<:表示输入结束 2,标准输出(stdout):>或者>>亦可以是1>或者1>> >.1>:以覆盖的方式输出. >>.1>>:以累加的方式输出. 3,标准错误输出(stderr):…
转自:http://www.linuxidc.com/Linux/2012-09/69764.htm linux在你登入时,便将默认的标准输入.标准输出.标准错误输出安排成你的终端.I/O重定向就是你通过与终端交互,或者在shell script里设置,重新安排从哪里输入或者输出到哪里.每个程序都应该有标准输入/输出(错误输出). 重定向的方法大抵有:>.<.<<.管道等 先了解stdin.stdout.stderr. 标准输出(stdout):代码为1,使用>或者>&…
1)垃圾桶黑洞 /dev/null command > /dev/null 2)stdout与stderr写入同一个文件 command > filename >& command &> filename 3)stdin   <,<< '<'   将原本要有键盘输入的数据改为由文件内容代替 command > now_file < old_file '<<' 结束输入 command > file <<…
1.三种数据流重定向1)标准输入(stdin):代码为0,使用0<或0<<,其中代码0可以省略2)标准输出(stdout):代码为1,使用1>或1>>,其中代码1可以省略3)标准错误输出(stderr):代码为2,使用2>或2>> 2.标准输出(stdout)重定向我们知道Linux中,cat命令可以将文件内容输出到屏幕.如下所示: 我们可以使用>将输出重定向到其他文件,如下所示: 可以看到,使用>后,文件内容并没有输出到屏幕,而是输出到了…
1.看到重定向一下子就想起了web里面的redirect,没错,但是Linux数据流重定向的作用不是跳到另一个网页,而是用来存储重要的屏幕信息.将不必要的屏幕信息输出到文件里或者“黑洞”里.将错误信息和正确信息分开存储,或者只显示正确信息等等~ 2.数据流重定向分为标准输入(代码为0,使用<或<<).标准输出(代码为1,使用>或>>).标准错误(代码为2,使用2>或2>>)输出这三种. 3.标准输入 > 例子:ls -l / >dir.tx…
介绍 开始对重定向这个概念感到些许陌生,但通过前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中.这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的. 一.数据流重定向 下面简单的回顾一下前面经常用到的两个重定向操作: $ echo 'hello shiyanlou' > redirect $ echo 'www.shiy…
一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:wq类) hjkl(左下右上)3.一般模式常用命令(1)移动光标ctrl+f:向上ctrl+b:向下0:移动到这一行最前面$:移动到这一行最后面gg:相当于1G,移动到文件第一行G:移动到文件最后一行n(数字):光标向下移动n行(2)搜索和替换:n1.n2s/word1/word2/g :n1到n2行…
数据流重定向简单来说就是把原本应该输出到某处(比如说屏幕)的数据,重定向其输出目的地,到其他的地方(比如文件). linux中的输入与输出: 标准输入(stdin):默认从键盘输入 标准输出(stdout):执行的正常结果信息,默认输出到屏幕 标准错误输出(stderr):执行的错误信息,默认输出到屏幕 那就让我们来体验下这三个鬼东西吧: [fuwh@localhost 08:32 ~]$ ll <-- 标准输出,默认结果输出到屏幕 总用量 24 drwxrwxr-x. 2 fuwh fuwh…
一.标准输入.标准输出.错误输出概述 1.标准输入(stdin)是指令数据的输入,代码为0,使用<或者<<,默认是键盘. 2.标准输出(stdout)是指令执行成功返回的结果,代码为1,使用>或者>>,默认在屏幕显示. 3.标准错误输出(stderr)是指令执行失败返回的错误信息,代码为2,使用2>或者2>>,默认是屏幕. 二.数据流重定向的使用      1."<":指定输入的数据媒介来源(tr 'a-z' 'A-Z' &l…
数据流重定向 很多时候,我们执行一些命令的时候,会在屏幕中得到这些命令的执行结果.这些叫作标准输出. 但是很多情况下,我们并不想将这些信息直接显示在屏幕上,这个时候,就得用重定向这个功能了 标准输入 stdin 代码为0  使用 < 或 << 标准输出 stdout  代码为1  使用 > 或 >> 标准错误输出 标准错误输出 stderr  代码为2  使用 2> 或  2>> 输出重定向使用方法 eg: 1. 2.实用小功能 从上面我们能够看出,如…
Linux管道.重定向以及文本处理 1 Linux多命令协作:管道及重定向 管道和重定向 2 Linux命令行文本处理工具 文件浏览 基于关键字搜索-grep 基于列处理文本-cut 文本统计-wc 文本排序-sort 删除重复行 文本比较-diff 检查拼写-aspell 处理文本内容-tr 搜索替换-sed 开源的一个重要理念:不要重复发明轮子. 很多开源软件都是现有软件.代码.功能的重新组合. <大教堂与集市> 1 Linux多命令协作:管道及重定向 管道和重定向 Linux中,大多数命…
一.概述 1. 数据流 定义:以规定顺序被读取一次的数据序列. 分类:标准输入(stdin).标准输出(stdout)和标准错误输出(stderr). 标准输出:指的是命令执行所回传的正确信息. 标准错误输出:指的是命令执行失败后,所回传的错误信息. 2. 文件描述符 定义:在形式上是一个非负整数.实际上,它是一个索引值,所有打开的文件都通过文件描述符引用.当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符.按照惯例,unix系统shell把文件描述符0与进程的标准输入关联…
Linux I/O 重定向详解及应用实例 简解 > 输出 < 输入 >> 追加 & [> | < | >>]之前:输入输出; ls /dev &>filename #"&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了. [> | < | >>]之后:重定义文件标志符 echo 123 1>&tmp #相当于 echo 123 :…
最近看了鸟哥私房菜关于shell数据流重定向的内容,总结一下. 操作符: 1.标准输入(stdin):代码为0,符号:< 或者<< 2.标准输出(stdout):代码为1,符号:>或者>> 3.标准错误输出(stderr):代码为2,符号:2>或者2>> 作用: 标准输出和标准错误输出可以将内容重定向输出到指定的设备(如打印机)或文件中 标准输入可以使用文件或其他输入替换手动输入 单箭头和双箭头的区别: 对于输出: 单箭头:当指定的文件不存在时,创建新…
1. 标准输入,标准输出与标准错误输出 Linux下系统打开3个文件,标准输入,标准输出,标准错误输出. 标准输入:从键盘输入数据,即从键盘读入数据. 标准输出:把数据输出到终端上. 标准错误输出:把标准错误输出到终端上. 默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端. 系统为这三个文件分配了文件标识符fd(file descripter). 在Linux系统下,一切皆是文件,对文件的操作,一般要用到文件标识符.它们的文件标识符,分别为0,1,2. 2. 重定向 重…
所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块的输出,然后把捕捉到的输出,作为输入 发送给另外一个文件,命令,程序,或者脚本.谈到I/O重定向,就涉及到文件标识符(File Descriptor)的概念, 在Linux系统中,系统为每一个打开的文件 指定一个文件标识符以便系统对文件进行跟踪,文件标识符是一个数字,不同数字代表不同的含义,默认情况下,系统占用了3个,分别是 0标准输入(stdin)(键盘输入) 1标准输出(stdout) (屏幕…
原文:http://xstarcd.github.io/wiki/shell/exec_redirect.html linux exec与重定向 exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.histor…
Linux管道及重定向 对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制.在shell中,我们通常使用符合'|'来表示管道,符号'>'和'<'表示重定向.那么管道和重定向的真实含义(定义)又是什么呢? 管道 管道的定义 管道就是一个进程与另一个进程之间通信的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入.它是半双工运作的,想要同时双向传输需要使用两个管道.管道又可以分为匿名管道和命名管道,而shell中使用到的是匿名管道,所以本文仅描述…
Linux标准输入.重定向与参数传递 按惯例,每当运行一个新程序时,所有shell都为其打开3个文件描述符,即标准输入.标准输出以及标准错误.如果不做特殊处理,例如就像简单的命令ls,则这三个描述符都链接向终端.大多数shell都提供一种方法,使其中一个或所有这3个描述符都能重新定向到某个文件. --<UNIX环境高级编程(第三版)> 也就是说,我们可以用文件内容来替代从终端输入的内容,也可以用文件来代替终端接收程序输出的内容.于是,我写了个简单的求两数和的小程序测试重定向功能: #inclu…
一.什么是数据流重导向: 数据流重导向 (redirect) 由字面上的意思来看,好像就是将『数据传导到其他地方去』,没错-数据流重导向就是将某个命令运行后应该要出现在屏幕上的数据, 给他传输到其他的地方,例如文件或者是设备(打印机等.) 我们运行一个命令的时候,这个命令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上. 在上图当中, standard output 与 standard error output 分别代表『标准输出』与『标准错误输出』, 这两个默认都是输出到屏幕上的!那…
1>        以覆盖的方式将正确的数据输出到文件或设备上 1>>        以追加的方式将正确的数据输出到文件或设备上 2>        以覆盖的方式将错误的数据输出到文件或设备上 2>        以追加的方式将错误的数据输出到文件或设备上 > 和 >> 标识默认为1 <          将原本需要键盘输入的数据改由文件内容来代替 <<       后面加结束字符 tee      双向重定向 eg: 1.将 用find命…
通常在 Shell 中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上.当然,我们也可以手动的指定输出路径,或者输入路径,这就是 I/O 重定向. 1.标准输出重定向 使用 cat 命令,命令的执行结果将会打印在屏幕中. 我们使用 > 来进行输出重定向,此时屏幕上不再打印命令执行结果了,而是将执行结果保存到了 ./target.xxx 文件中. 来看一下 ./target.xxx 文件中的内容: 2.标准输入重定向 tr 命令可以从键盘上读取标准输入…
  在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error ou…
用execvp实现时,运行adb,如果adb 服务没有启动,会启动adb服务,启动adb服务时,pipe返回的管道在读的时候堵塞了. 查看了popen的源码,发现popen是用sh -c来执行的,避免了这个问题 不知道sh -c做了些什么操作,使得popen可以避免这个问题 代码如下: #ifndef __RG_REDIRECT_H #define __RG_REDIRECT_H //#ifdef _LINUX //for linux version #include <string> #if…
包含3种数据流: •标准输入(stdin):代码为0,符号为<或<<; •标准输出(stdout):代码为1,符号为>或>>; •标准错误输出(stderr):代码为2,符号为2>或2>>. •>默认为覆盖文件内容,如果要追加则用>> 将数据从指定的流输入或输出,就称为数据重定向. 管道 •管道命令的界定符号为”|” •管道命令仅会处理stdout,对stderr会忽略 •管道命令必须要能够接收来自前一个命令的数据作为stdin  …
一.Linux重定向 重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令.这部分涉及到的比较多的命令主要有: 涉及到的比较多的命令主要有: cat:连接文件 sort:排序文本行 uniq:忽略或者报告重复行 wc:统计文件的行数.词数.字节数 grep:打印匹配制定模式的行 head:输出文件的头部 tail:输出文件的尾部 tee:从标准输入读,并往标准输出或者文件写 1.重定向标准输出 使用>可以将本来出现在屏幕的标准输出信息重定向到一个文…
  Linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出重定向:命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向.   命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件.   例如下面的命令在显示器上不会看到任何输出: $ who > users 打开 users 文件,可以看到下面的内容:…