一、三种I/O设备
标准输入和输出
程序:指令 +数据
读取数据:Input
输出数据:Output
打开的文件都有一个fd:file description(文件描述符)
Linux给程序提供三种I/O设备
标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(StDOUT) -1 默认给输出到终端窗口
标准错误)(STDRR)-2 默认输出到终端窗口
I/O重定向:改变默认位置
把输出和错误重定向到文件
STDOUT和STDERR可以被重定向到文件
命令 操作符号 文件名
支持的操作符号包括
> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
>文件内容会被覆盖
set -C禁止将内容覆盖已有文件,但可追加
> | file 强制覆盖
set +C允许覆盖
>>原有内容基础上,追加内容
2>覆盖重定向错误输出数据流
2>>追加重定向错误输出数据流
标准输出和错误输出各自定向至不同位置
COMMAND > /path/to/file.out 2> /path/to/error.out
合并标准输出和错误输出为同一个数据流进行重定向
&>覆盖重定向
&>>追加重定向
COMMAND > /path/to/file.out 2>&1(顺序很重要)
COMMAND >>/path/to/file.out 2>&1
():合并多个程序的STDOUT
(cal 2007;cal 2008)> all.txt
1 [root@centos6 ~]#ls /error /data > log1 2>&1 2 [root@centos6 ~]#ls /error /data 2>&1 > log2 3 ls: cannot access /error: No such file or directory 4 [root@centos6 ~]#ls /error /data &> log3 5 [root@centos6 ~]#ls /error /data 2>log4 >&2