目录
 
  • 三种I/O设备
  • 把I/O重定向至文件
  • 使用管道
 
知识铺垫
 
 
1)查看fd-文件描述符 (L)
 
ll /proc/$$/fd
 
在Linux中,系统打开文件时会随机分配一个编号,用这个编号来对应打开的文件,这个编号就叫做fd(file descriptor)-文件描述符

2) 人为指定fd 
 
exec Number<>Filename

1、三种I/O设备
  • 标准输入(STDIN) Standard In - 0 默认接受来自键盘的输入
  • 标准输出(STDOUT) Standard Out - 1 默认输出到终端窗口
  • 标准输出(STDERR) Standard Error - 2 默认输出到终端窗口
 
注意,这里提到的1种输入设备,2种输出设备,默认分别是来自键盘和终端窗口。默认这样的字眼,
说明我们可以改,即输入未必要来自键盘,输出也未必要输出到终端。
 
怎么做呢?重定向,改变它默认的位置
先来一个简单的

标准输出重定向之一:重定向到终端

1)输出结果重定向到另一个终端窗口

标准输出重定向之二:重定向到文件

2)输出结果还可以重定向到一个文件(最常用的重定向方式)

3)标准错误重定向:将错误信息重定向到文件中去
 
我们随便敲一个不存在的命令,人为地生成一个系统错误。然后将该错误信息重定向保存到一个文件中,如图中error.log的文件。

 
思考?标准输出重定向到文件中有何意义?
标准输出重定向到文件中其实很有用,比如我们经常会对一些命令结果进行分析,那么通过输出重定向可以方便的先将保存到文件中,然后再仔细分析。例如我们想通过history命令来查看一段时间以来的行为,就可以先保存到文件中再分析。
 
3)标准错误重定向:将错误信息重定向到文件中去
 
我们随便敲一个不存在的命令kiilo,人为地生成一个系统错误。然后将该错误信息重定向保存到一个文件中,如图中error.log的文件。
 
2>Filename

4)分别分类重定向
 
>filenameA 2>filenameB

 
5)将标准输出-1和标准错误-2,统一重定向到一个文件里(俗称洗钱)
 
cmd >file >2&1
2>&1 表示将”标准错误-2“重定向到1 ,然后一起发给可all.log文件(注意这里语法的顺序看起来不太自然,但是正确的执行顺序)

 
写法二:新写法
 
cmd &>file    表示将错误和正确信息一起发往all.log文件

写法三
(cmd 2>&1) > file

----------------------------------------------------------------------------------------------------------------------------------------------------

2、支持的操作符:
> 把SDOUT重定向到文件
2> 把SDERR重定向到文件
&> 把所有输出重定向到文件
 
 
3、覆盖和追加
 
 
 

05 IO和管道的更多相关文章

  1. 标准io和管道练习

         标准IO和管道实验练习 [例1]把/etc/fstab文件内容重定向到/tmp目录下文件名为fstab.out 写法: 13:54:35 root@centos ~]#cat /etc/fs ...

  2. 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream

    目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...

  3. Linux标准IO和管道

    Linux标准IO和管道 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: ...

  4. JAVA IO之管道流总结大全(转)

    要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流.换句话说,我们要有一种高效地读取写入到System.out和 System.err 所有内容的方法.如果你熟悉Java的管道流Piped ...

  5. java io之管道流

    一.java.io中存在一中流叫管道流,类似管道的功能.PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.这个两个流必须同时使用. 二.作用:进行两个线 ...

  6. 021.14 IO流 管道流

    用的频率不高特点:读取管道和写入管道对接,需要是用多线程技术,单线程容易死锁 使用connect方法连接两个流,实现边读编写,和node.js的管道流差不多 //##主函数位置 public stat ...

  7. 05 IO流(三)——IO流标准流程

    流程 选择源 选择合适的流 操作 关闭流:先打开的后关闭 演示 import java.io.File; import java.io.InputStream; import java.io.File ...

  8. node源码详解(七) —— 文件异步io、线程池【互斥锁、条件变量、管道、事件对象】

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource7 本博客同步在https://cnodejs.o ...

  9. Java基础IO类之字符串流(查字符串中的单词数量)与管道流

    一.字符串流 定义:字符串流(StringReader),以一个字符为数据源,来构造一个字符流. 作用:在Web开发中,我们经常要从服务器上获取数据,数据返回的格式通常一个字符串(XML.JSON), ...

随机推荐

  1. 在Tomcat7.0中设置默认服务器和不加端口名访问

    前言 昨天买了域名,服务器,然后搭建了环境,然后想他通过默认的端口,不用端口就访问. 设置WEB项目的欢迎页 在WEB-INF文件夹下有个web.xml文件(最近新建的项目不包含此文件,可以手动新建) ...

  2. English-英语日常交流语句

  3. 尚硅谷springboot学习26-嵌入式servlet容器自动配置、启动原理

    EmbeddedServletContainerAutoConfiguration:嵌入式的Servlet容器自动配置 @AutoConfigureOrder(Ordered.HIGHEST_PREC ...

  4. MySQL 物理文件体系结构的简单整理说明

    本文出处:http://www.cnblogs.com/wy123/p/7102128.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  5. 安装好ubuntu双系统启动时卡死解决办法

    问题描述:在安装完ubuntu双系统后,第一次启动ubuntu系统时,卡死在启动界面(或者黑屏),这大概都是由于显卡驱动的原因,具体不在这里阐述,通过以下方法能成功解决,据我个人经验,这可能是诸多方法 ...

  6. Communication Model

    [Communication Model] EOSIO actions operate primarily in a message-based communication architecture. ...

  7. cdnbest站点里设置防盗链

    设置需求只允许 test.kangleweb.com 访问  ,其他网站链接全部拒绝 (注:如果test.kangleweb.com是用https访问,那引用的内容地址www447.yivpn.cn也 ...

  8. jstl标准标签库 其他标签

    url操作标签 import 将另一个页面的内容引入到这个页面上来, 与include指令的区别: 这个标签可以引入其他项目中甚至网络上的资源 <c:import url="被导入的路 ...

  9. Django的rest_framework的分页组件源码分析

    前言: 分页大家应该都很清楚,今天我来给大家做一下Django的rest_framework的分页组件的分析:我的讲解的思路是这样的,分别使用APIview的视图类和基于ModelViewSet的视图 ...

  10. python基础 ---- 使用pyCharm 调试

    debug -- 为了分析程序的异常 单步调试 1.设置断点 2.debug.启动  3.监控变量