首先,我们知道我们的计算机结构,在第一节的时候已经介绍过了,CPU进行数据运算,同时控制器负责指令的发送,而内存则是数据存储的地方,CPU读取的数据均从内存中调取。电脑除了CPU和内存外,我们还有I/O总线来关联外部设备(外设,例如显示器、键盘、硬盘、鼠标、光驱等等);

  我们知道,内存默认情况下是没有数据的,而内存的数据都来自于外设,比如硬盘、鼠标、键盘等外部设备,同时,如果进程运行结束后需要将运行的结果输出出来,也是最终通过外部设备来显示或者存储(不可能是内存);

  明白这点后,但是外设有很多设备,比如键盘、硬盘等,程序运行的时候到底从哪里调用数据呢?显示器、打印机等,程序到底将结果输出到那个设备备上呢?所以,这里我们要明白的是:计算机系统有自己默认的输入输出设备,这些INPUT设备和OUTPUT设备是由计算机自己定义好的;

I/O重定向

  通过上面的描述,我们知道系统输入输出都有自己制定的标准设备,到底哪些是呢?

  系统默认设定:

    默认输出设备:标准输出,STDOUT,1【1指定为标准输出】---标准输出来自于显示器*

    默认输入设备:标准输入,STDIN,0【0指定为标准输入】---标准输入来自于键盘*

    标准错误输出:STDERR,2【2指定为标准的错误输出】

  【useradd user1 | passwd --stdin "123456"  #其中--stdin指定的就是标准输入】

  知道了标准输入输出后,我们就能理解重定向的意思了:说白了,就是不使用计算机系统提供的默认输入输出设备,而自己手动指定输出设备,这就叫做I/O重定向;

  对于Linux系统而言,重定向符号为:

    >  输出重定向  注意,它会将文件里面原有的内容都覆盖掉

    >>  追加重定向  在原有的文件基础之上再追加新内容

    <  输入重定向  将后面的参数交给前面的命令来执行

    <<  cat 命令中的定位符号

    2>  重定向错误输出  2表示标准错误,上面的1和0都是可以省略的

    2>>  追加重定向的错误输出

    &>  不管是1正确的重定向输出、还是2错误的重定向输出,都输出到后面文件中去

  【使用<对于文件来说非常不安全,如果将原本文件覆盖是无法找回的,所以我们可以通过set命令来开启或关闭重定向功能:set -C 禁止对已经存在的文件使用覆盖重定向功能(如果要强制负载,则可以使用 >| 符号来实现),set +C 开启覆盖重定向功能】

  在cat命令编辑文件的是偶,我们使用“>>文件名<<EOF"的方式来进行文件的输入:

    其中EOF符号为end of file的意思,实际上cat文件在输入内容的时候,只需要起始符和结束符相同即可;

  下图命令为错误命令,2> 错误重定向才能生效;

  有时候,我们需要将错误的输入结果输入到一个文件中去,而真确的输出结果又输入到一个文件中:(错误文件和正确的文件不是同一个文件)

  如果我们需要将错误输出和正确输出都重定向到同一个文件中去,则时候就使用到了 &>

管道符  |

  管道符:将前一个面对输出内容,作为后一个命令的输入;

  使用方式是:命令1 | 命令2 | 命令3

  【Linux系统的中心思想:组合小命令,完成复杂任务】

  tee命令:将显示出来的内容,作为一个独立的文件保存起来;

06 I/O重定向与管道符的更多相关文章

  1. linux重定向与管道符(一)

    linux重定向和管道符 为什么要使用重定向 1.当屏幕输出的信息很重要,而且我们需要将他存下来的时候: 2.后台执行中的程序,不希望他干扰屏幕正常的输出结果时: 3.系统的例行命令,例如定时任务的执 ...

  2. Linux就该这么学:重定向,管道符,通配符,转义符,环境变量

    第三章:重定向,管道符,环境变量 3.1 输入输出重定向 定义:输入重定向是指将文件导入命令中,输出重定向是指将原本显示到屏幕的信息输出问文件.相较于输入重定向,输出重定向使用的更多,下面重点介绍输出 ...

  3. linux专题一之文件描述符、重定向、管道符、tee命令

    本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...

  4. Liunx 重定向,管道符(转)

    原作网址:http://blog.csdn.net/qq_16811963/article/details/52997178 输出重定向 >代表以覆盖的方式将命令的正确输出输出到指定的文件或设备 ...

  5. SpringMVC札集(06)——转发和重定向

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  6. linux基础进阶命令详解(输出重定向(2>&1,1>&2,&>file)、输入重定向、管道符、通配符、三种引号、软连接、硬链接、根“/”、绝对路径vs相对路径)

    本章命令(共9个): 1 2 3 4 5 6 7 8 9 输出重定向 输入重定向 管道符 通配符 三种引号 软连接 硬链接 根"/" 绝对路径vs相对路径 1.输出重定向 作用:一 ...

  7. Linux学习 - 输入输出重定向,管道符,通配符

    一.键盘输入读取read read [选项] [变量名] -p [显示信息] 在等待read输入时,输出提示信息 -t [秒数] 指定read输入等待时间 -n [字符数] 指定read只接收n个字符 ...

  8. Linux中shell基础、重定向、管道符、环境变量

    1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...

  9. Linux学习《第三章重定向,管道符和环境变量》

随机推荐

  1. DOM Access and Manipulation JS 操纵DOM

    JS 操纵DOM 有两种很简单的方式: 如果知道ID 的情况下. 我们可以使用 document.getElementById 我们还可以使用 document.getElementById(&quo ...

  2. 设置 sideload Outlook Add-ins

    上期,我们讲到了用前端技术去建立一个outlook add-ins 我们今天来讲解一下怎样测试一个sideload outlook add-ins. 1. 我们需要登录Outlook在Office 3 ...

  3. Java基础语法 第2节 Java语言基本语法

    一.标识符和关键字 1.标识符 1)java中标识符用来为程序的白能量.常量.方法.类.接口和包名命名,标识符由字母.数字.下划线.美元符号组成,且第一个字符不能是数字: 2)标志符命名规则:见名知意 ...

  4. malloc的使用、用malloc动态分配内存以适应用户的需求的源代码实例

    int len; ; printf("please enter the size that you want: "); scanf("%d", &len ...

  5. 逻辑回归原理(python代码实现)

    Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数. 优点:计算代价不高,易于理解和实现. 缺点: ...

  6. MapReduce案例:统计共同好友+订单表多表合并+求每个订单中最贵的商品

    案例三: 统计共同好友 任务需求: 如下的文本, A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E ...

  7. hanlp在Python环境中的安装失败后的解决方法

    Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用.有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的解 ...

  8. 数据科学VS机器学习

    数据科学是一个范围很广的学科.机器学习和统计学都是数据科学的一部分.机器学习中的学习一词表示算法依赖于一些数据(被用作训练集)来调整模型或算法的参数.这包含了许多的技术,比如回归.朴素贝叶斯或监督聚类 ...

  9. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  10. 解决 VUE 微信登录验证 【感谢原文:https://segmentfault.com/a/1190000009493199】

    [感谢原文:https://segmentfault.com/a/1190000009493199] SPA单页应用中微信授权登录的一点思路 单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回? ...