Linux重定向

1. 什么是标准文件

    shell为每个命令打开三个文件(流),用于
             读取输入——标准输入——键盘
             输出结果——标准输出——显示屏(控制台)
             输出错误消息——标准错误——显示屏(控制台)
    当shell发现命令行中存在特殊字符(<,>,|)时,shell就把流从它的默认设备上断开,连接到磁盘文件或另一个命令。


2. 标准输入重定向

    当命令后不带 任何参数时,它从标准输入文件中读取数据。该文件可以代表三个输入源:
        键盘,默认输入源
        文件,要用 < 重定向符
        其他命令,要用 |(管道符)
    例子:wc不带参数时,也没有和< 或|特殊字符连接时,wc就从默认设备(键盘)获取输入
      #wc
         hello, how are you?
         I’m fine.
         [ctrl+d]

    语法
       command < input file
    语义
       如果command从标准输入读取输入,则该输入来自于input file,而不是键盘
    例
      #wc < tmp: shell扫描到< 符号时,就打开tmp文件, 然后shell断开标准输入的默认源,把它连接到tmp文件,cat命令从标准输入读取数据,标准输入已经由shell重定向到     tmp文件
      #wc  tmp:wc命令打开tmp文件,读取数据显示到屏幕上。


3.标准输出重定向

     类似输入重定向,结果输出到屏幕上的命令,实质是把结果以字符流的形式输出到标准输出文件里,而不是直接输出到终端上。输出流有三个目标对象:
       终端,默认目标
       文件,用> 或 >> 重定向
     来自于另一个命令的输入,用管道符|
      说明:>> 是在文件末尾添加

      语法:  command > output file
      语义:将命令command的输出发送到文件output file,而不是屏幕
     例
     #date
     #date > apple         //当shell扫描到>符号时,创建一个新文件apple为写入做准备;然后shell断开标准输出文件的默认目标设备,并连接到apple文件;date把结果写入到已 重定向到apple文件的标准输出。
   !不要覆盖文件:重定向输出到一个文件时要小心,确信文件名不存在,否则将被覆盖! 

    三个标准文件都对应一个称为文件描述符的数字代码。当文件打开进行读写操作则需要用到文件描述符。标准文件描述符:
       0:标准输入
       1:标准输出
       2:标准错误
        重定向与文件描述符使用可以显式说明重定向
        <等价于0<
        >等价于1>,表示输出重定向  
          如:cat aa  1> bb 与 cat aa >bb 一样的意思
           2>,显式指定错误重定向

4.错误重定向

   command 2> error-file
    命令的错误信息与普通返回区分
    标准错误重定向将错误信息单独输出
    例
    #cat  foo
        cat:foo:no such file or directory
    #cat foo > error
        cat:foo:no such file or directory  //可见,错误信息并没有保存到error文件
    #cat  foo 2>error
    #cat error

例:从文件input得到标准输入,并发送输出到result文件,可以使用下列任意命令:
#cat  >  result  <  input
#cat  <  input  > result
#cat>result<input
#> result < input cat
输入源和输出目标在一个命令行中的次序和位置并不重要,以及他们前后的空格个数并没有严格限制。这正是UNIX系统最强大的功能之一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值