4-3 标准输入输出

标准输入输出

程序本身都是由指令+数据构成
读入数据:Input
输出数据:Output

打开的文件都有一个fd:file descriptor(文件描述符)文件描述符:查看程序tail的文件描述符 ll /proc/pidof tail/fd

Linux给程序提供三种I/O设备

  • 标准输入(STDIN(standard input))-0 默认接受来自终端窗口的输入
  • 标准输出(STDOUT)-1 默认输出到终端窗口
  • 标准错误(STDERR)-2 默认输出到终端窗口

I/O重定向:改变默认位置

把输出和错误重新定向到文件

STDOUT和STDERR可以被重定向到文件
命令 操作符号 文件名
支持的操作符号包括:

  • > 把STDOUT重定向到文件
  • 2> 把STDERR重定向到文件
  • &> 把所有输出重定向到文件
  1. >:文件内容会被覆盖
    • set -C:禁止将内容覆盖已有文件,但可追加
    • >|:强制覆盖
    • set +C:允许覆盖
  2. >>:原有基础上,追加内容
  3. 2>:覆盖重定向错误输出数据流
  4. 2>>:追加重定向错误输出数据流

标准输出和错误输出各自定向至不同位置
COMMAND > /PATH/TO/FILE.OUT 2> /PATH/TO/ERROR.OUT
合并标准输出和错误输出为同一个数据流进行重定向
&> 覆盖重定向
&>> 追加重定向
COMMAND> /PATH/TO/FILE.OUT 2&>1(顺序不能乱,因为如果把2&>1写在前面,1现在是输出到屏幕,所以结果是2输出到屏幕,1输出到文件)
COMMAND>> /PATH/TO/FILE.OUT 2&>1
():合并多个程序的STDOUT
例如:(cal 2007;cal 2008)>all.txt

原文地址:https://www.cnblogs.com/kjalbert/p/11594941.html