原文: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. js:我们应该如何去了解JavaScript引擎的工作原理(转)

    http://www.nowamagic.net/librarys/veda/detail/1579 昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件内容,不过 ...

  2. JS函数库Underscore.js

    http://underscorejs.org/ http://www.css88.com/doc/underscore/ http://www.bootcss.com/p/underscore/

  3. 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群

    规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...

  4. html的table使用div创建

    午休时间写了一个使用div创建table的案例 1.样式 <style> .table { display: table; } .tableRow { display: table-row ...

  5. Oracle:复合触发器

    ----- CF_DEPTUCORGANIZATION  INSERT UPDATE DELETE 触发器CREATE  OR REPLACE TRIGGER tr_del_CF_DEPTUCORGA ...

  6. window+Jira+SQL Server

    window下Jira+SQL Server部署+汉化+破解(亲测2018.5) 网上很多都是jira+mysql部署的文章,由于我现在有需求要用SQL Server数据库,因此就动手试了一下,参考网 ...

  7. 认识 service worker

    离线缓存可以提升用户体验,可以节省网络资源,但是,浏览器对资源缓存和自定义网络请求的控制一直不够完善,service worker 的出现就是为了解决这些问题 它可以解决目前离线应用的问题,同时也可以 ...

  8. KVC基本使用

    首先,创建两个类.person类和book类.如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/ ...

  9. jQuery 插件开发(1)

    JavaScript 是一门混乱的语言,好的特性和坏的特性混杂在一起.而不同浏览器对标准的解析不一致,使得这门语言更加混乱,在这种情况下遵循最佳实践有诸多好处,至少不会掉入坑里.所以就有了<Ja ...

  10. nexus-2.11.4-01-bundle.tar.gz 下载地址

    wget http://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.4-01-bundle.tar.gz 注意原本的是ht ...