0302 echo、重定向、管道、cat、tee

 目录

  1. 输入流和输出流
  2. 输入和输出
  3. echo命令
  4. 标准输出重定向 >
  5. 管道 |
  6. cat 
  7. tee

1输入流和输出流

  单个程序的数据流模型

  

  1.1 程序

    泛指大多数普通程序(大多数程序都有输入流和输出流),在Linux中的shell中都可以理解成是一个程序

  1.2 输入流

    提供给程序处理的信息

  1.3 输出流

    程序执行后返回的结果

 

2输入、输出

  2.1 标准输出(stdout):屏幕

  2.2 标准输入(stdin):鼠标、键盘

    例:Python 中调用了 input,它是需要输入的,它会默认去找系统的 stdin , 而 stdin 是默认连接到键盘的

    例:Python 中调用 print , 它是需要输出的,它会默认去找stdout, 而 stdout 是默认连接到屏幕的

    > 注意1:标准输入和标准输出是可以自己指定的,但是我们一般使用默认的

    > 注意2 : 还有一个标准错误输出(2);通常标准输入(0),标准输出(1);后面的数字是它们的表示方法

3echo  -->>  回显

  3.1 作用

    接收一个命令参数(一个字符串)当做其输入流,再将该流交给标准输出来输出;因此,echo命令会会将用户键入的命令参数回显到屏幕上

    例如

    

 

    例:echo 'I am a student.'   -->> 'I am a student.' 是给 shell,再由 shell 传给 echo 命令

  3.2 echo 的输入和输出

    echo 是从参数获得输入(不是标准输入),输出是屏幕,是标准输出

    echo “I am a student”  -->> 回车后速度很快的原因

      流不是直接从输入流向屏幕,它会现在内存中暂留(缓冲区),缓冲区满了再

        > 缓冲区:解决内存和硬盘速度不对等的问题

      计算机速度快

4标准输出重定向

  默认的标准输出是屏幕,标准输出重定向可以将标准输出的内容流向一个文件

  

  缺点:重定向会刷新文件(即:之前的内容会消失)     

  

  解决办法:利用  >>  代替  >

  

 

5管道

  把一个程序的输出流交给另外一个程序,作为另外一个程序的输入流

  

  图解:程序1的输出流顺着管道流向了程序2的输入流(注意:这里说的管道只是一个比喻而已)

  例如

  

  echo 可以将 print('asdf') 命令输出到屏幕上

    > echo 的输出是标准输出

  echo "print('asdf')"

    > 仅仅是将命令输出

  echo "print('asdf')" | python3

    > 返回的结果是 asdf

      >> 因为 echo 的输出是 print('asdf') 这个命令, 通过管道(由 | 实现)将这个命令送到 Python3 命令的输入流,经过 Python3 这条命令处理后就会得到一个输出流

        >>> 通常Python3 这个命令的输入是一个文件,我们这里使用Python代码也是可以的

 

6cat 命令

  6.1 查看文件内容

    cat 文件名(加后缀)

    

    > cat 的输入是一个文件,输出是标准输出

  6.2 cat 用于重定向

    cat 文件名1 > 文件名2

    

    > cat 的输出是标准输出,所以可以用于标准输出重定向

  6.3 cat 用于拼接输出

    cat 文件1 文件2 文件3

    

    > 可以将多个文件的内容拼接到一起

  6.4 无参数的cat

    cat 如果不给输入,那么它会等待标准输入;再遇到 \n 时就会通过标准输出输出到屏幕

      > 作用是用来创建一个新文件,并向其写入数据

      

      使用 > 是刷新内容

 

      

      使用 >> 是增加内容

      >注意1: 千万不要利用 cat 来写配置文件

      >注意2:ctrl + d  -->>  正常退出

  6.5 cat 和 > 的组合妙用

      将多个文件的内容合并到一个文件中

      

      > 理解:cat 可以将多个文件的内容读出,并标准输出到屏幕;而 > 可以将一个标准输出今进行重定向

 

7tee 命令

  echo 的输出标准输出

  cat 的输出可以是 标准输出 或者 同 > 组合将内容写入到文件

  tee 的输出时 标准输出 文件

  

  

 

posted @ 2017-04-10 21:03  寻渝记  阅读(864)  评论(0)    收藏  举报