管道和重定向

  • A+
所属分类:linux技术
摘要

数据的来源:input设备数据的去向:output设备系统默认输出设备:标准输出(stdout),文件描述符:1


I/O重定向

数据的来源:input设备

数据的去向:output设备

系统默认输出设备:标准输出(stdout),文件描述符:1

系统默认输入设备:标准输入(stdin),文件描述符:0

标准错误输出:stderr,文件描述符:2

 

标准输入:键盘

标准输出和错误输出:显示器

 

I/O重定向:改变输入输出的方向

  输出重定向:

    覆盖输出重定向:>

    追加输出重定向:> >

注:set +/- C 可开启/关闭 对已存在文件使用覆盖输出重定向

     set -C 时若要强制覆盖,则使用 >|

    错误输出重定向:2>

    错误追加重定向:2> >

    重定向所有输出:&>

要同时使用输出重定向和错误输出重定向,可使用如下命令:

  重定向到不同文件:

#ls /var# > /tmp/stdout.out 2> /tmp/stderr.out

  重定向到一个文件:

#ls /var# &> /tmp/std.out

 

  输入重定向:

    输入重定向:<

    此处生成文档:< <(后接结束标识字符)

#cat >> /tmp/myfile.txt << EOF > The first line. > The second line. > EOF #cat /tmp/myfile.txt The first line. The second line.

 


 

管道

  COMMAND1 | COMMAND2 | COMMAND3 | ...

  管道:将前一个命令的输出作为后一个命令的输入

#echo "redhat" | passwd --stdin USERNAME

 

tee

  tee:从标准输入读取数据,显示到屏幕和存到文件

#echo "Hello World" | tee /tmp/hello.out