天天看点

输入输出重定向与管道

输入重定向

  • 当有些时候如果让用户手动输入数据将会相当麻烦,此时可以使用输入重定向操作符’<’ 来重定向输入源
  • 输入重定向是指把命令或者可执行程序的标准输入 重定向到指定的文件
  • 输入可以不来自键盘,而是来自指定的文件
  • 输入重定向主要用于改变一个命令的输入源

输出重定向

  • 使用输出重定向操作符’>’ 改变数据输出的目标,一般是另存到一个文件中供以后分析
  • 输出重定向能把一个命令的输出 重定向到文件里,而不是显示在屏幕上
  • 注意:如果> 后面指定的文件已存在,则该文件的原内容会被覆盖

输出重定向追加

  • 为避免输出重定向中的指定文件被重写,shell提供了输出重定向的追加手段
  • 如果要将一条命令的输出结果追加到指定文件的后面,可使用追加重定向操作符’>>’
  • 格式:命令 >> 文件名

双重输出重定向

  • 将正确的输出结果与错误的输出结果一次性单独输送到不同的地方

    格式:命令 2> error.txt > results.txt

  • 不管是正确的输出还是错误的输出,都要输送到指定的同一文件,则可使用&>或者&>>

    格式:命令 &>> 文件名称

文件描述符

名称 代码 操作符
标准输入 <、<<
标准输出 1 1>、1>>、>、>>
标准错误输出 2 2>、2>>

管道

  • 将一个程序或命令的输出作为另一个程序或命令的输入 ,有两种方式
  • 一种是通过一个暂存文件将两个命令或程序结合在一起
  • 另一种为管道操作(|)
  • 管道(|)可以把一系列命令连接起来

tee命令

  • tee命令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件
  • 语法格式:tee [-ai] [文件]
  • -a 内容追加到给定的文件而非覆盖
  • -i 忽略中断信号
  • 例如:ifconfig | tee ipconf.txt

继续阅读