原文:http://blog.sina.com.cn/s/blog_8333cf8f0100vzzl.html##1

1. 标准输入输出和错误

   linux下使用标准输入文件stdin和标准输出文件stdout,来表示每个命令的输入和输出,还使用一个标准错误输出文件stderr用于输出错误信息。这三个标准输入输出系统缺省与控制终端设备相联系在一起。

因此,在标准情况下,每个命令通常从它的控制终端中获取输入,将输出打印到控制终端的屏幕上。但是也可以重新定义程序的标准输入文件stdin和标准输出文件stdout,将它们重新定向。最基本的用法是将它们重新定义到一个文件上,从一个文件获取输入,输出到另外的文件中等。标准输入文件stdin,通常对应终端的键盘;标准输出文件stdout和标准错误输出文件stderr,这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

2. 文件描述符

   文件描述符是从0开始的整数,指向与进程相关的特定数据流。当进程启动时,通常打开三个文件描述符,分别对应三种标准的I/O:标准输入(文件描述符0),标准输出(文件描述符1),标准错误(文件描述符2)。

1)标准输入(STDIN):它是命令的输入,缺省和终端的键盘关联

2)标准输出(STDOUT):它是命令的输出,缺省和终端的屏幕关联

3)标准错误(STDERR):它是命令的错误信息输出,缺省也和终端的屏幕关联

4)如果进程打开了额外的文件进行输入和输出,则其被设置为下一个可用的文件描述符,从3到9

3. 文件重定向

   在执行命令时,命令的标准输入、输出和错误信息是和问价描述符0、1、2关联的,而文件描述符0、1、2缺省和终端关联。如果希望命令从文件中读取标准输入或则希望命令的标准输出写到文件而不是屏幕,就需要使用文件重定向。

4. 重定向标准输出(输出重定向)

 1)CMD > filename:把CMD命令的标准输出重定向到一个文件中(如果文件存在,其内容将被覆盖)

 2)CMD >> filename:把CMD命令的标准输出重定向到一个文件中(追加文件尾部)

 3)> myfile      :创建一个空文件,如果文件存在则清空该文件

 4)举例:ls -l | grep ^d >>files.out //把当前目录下的子目录的列表写到文件files.out中

         >sql.log                    //清空sql.log

5. 重定向标准输入(输入重定向)

 1)CMD < filename:以filename文件作为CMD命令的标准输入

 2)CMD << DELIMITER:从标准输入中读入输入,知道遇到DELIMITER分解符。

 3)举例:sort < grade.txt //对文件grade.txt进行排序(sort)

 4)CMD <filename实际上是和CMD 0<filename等效,CMD << filename和CMD 0 <<filename 等效

6. 重定向标准错误(错误信息重定向)

 1)CMD 2> filename:把CMD命令的标准错误重定向到一个文件中(如果文件存在,其内容将被覆盖)

 2)CMD 2>> filename:把CMD命令的标准错误重定向到一个文件中(追加文件尾部)

 3)举例:find / -name "*.tmp" -exec rm -rf {}; 2>/dev/null //把命令的错误信息输出丢弃

linux标准输入输出与重定向的更多相关文章

  1. 015 Linux 标准输入输出、重定向、管道和后台启动进程命令

    目录 1 三种标准输入输出 2 什么是重定向?如何重定向? (1)什么是重定向? (2)如何重定向? 3 管道符以及和它容易混淆的一些符号使用 (1)管道符 | (2)&和&& ...

  2. Linux 标准输入输出、重定向

    一 相关知识 1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |). 2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes ` ...

  3. Linux 标准输入输出、错误输出、重定向标准输出

    再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...

  4. linux标准输入输出重定向

    command > filename 把标准输出重定向到一个文件,如果文件不存在则新建,如果存在则覆盖其内容.command >> filename 把标准输出重定向到一个文件中,如 ...

  5. linux标准输入输出及错误输出

    Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定 ...

  6. linux标准输入输出2>&1

    linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2.     STDIN是标准输入,默认从键盘读取信息:STDOUT是标准输出,默认将输出结果输出至终 ...

  7. linux标准输入输出错误输出

    Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示.0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需 ...

  8. linux中输入输出和重定向问题

    输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...

  9. linux 标准输入输出

    文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket.最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应 ...

随机推荐

  1. 使用JDK中的类URL访问HDFS(来自吴超Hadoop)

    package hdfs; import java.io.InputStream; import java.net.URL; import org.apache.hadoop.fs.FsUrlStre ...

  2. C语言批量数据到动态二维数组

    上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它 ...

  3. android 自己定义组件随着手指自己主动画圆

    首先自己定义一个View子类: package com.example.androidtest0.myView; import android.content.Context; import andr ...

  4. HDU 5056 Boring count(数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5056 Problem Description You are given a string S con ...

  5. grunt使用一步一步讲解

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...

  6. linux SPI驱动——spidev之driver(六)

    一: spidev_init注册spidev 1: static int __init spidev_init(void) 2: { 3: int status; 4:   5: /* Claim o ...

  7. 2018年EMUI系统能力分论坛来啦

    为鼓励开发者创新,挖掘前沿创新能力的应用及服务,帮开发者打造爆款应用的同时丰富终端消费者的用户体验,由设立10亿激励基金耀星计划扶持的华为创新竞赛平台即将开启. 竞赛平台将滚动推出AI.HAG.AR. ...

  8. 美景听听Ai语音导游,助力华为荣耀PLAY手机发布

    6月6日,荣耀PLAY科技酷玩新品发布会在北京大学生体育馆如期举办,美景听听Ai语音讲解助力新EUMI系统智慧旅行成新卖点,震撼登场! 随着生活水平的不断提升,出门旅行已经成了许多亲们释放压力.调节自 ...

  9. php信号处理

    pcntl pcntl_signal 信号注册函数 pcntl_alarm 指定秒数中断程序执行任务. 每次执行只会有一个定时器生效,若之前计时器还没结束就定义新定时器,会替代之前定时器并返回之前定时 ...

  10. Java正确获取客户端真实IP方法整理

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...