一、标准输入和输出
1.程序:指令加数据 或者说:数据结构加算法
2.读入数据:Input
输出数据:Output
3.文件描述符 fd
在Linux中一切皆文件,因此我们要通过文件来对设备进行访问,对于用户来说,访问文件就是通过文件名来进行的,用户看到的是一个文件名,但对于内核来讲是一个数字,这个数字叫文件描述符,内核就是通过文件描述符来访问文件。
4.Linux给程序提供三种I/O设备
标准输入(STDIN):0 键盘 (默认来自键盘输入)
标准输出(STDOUT);1 显示器(默认来自终端窗口)
标准错误(STDERR):2 显示器 (默认来自终端窗口)
二、I/O重定向:改变默认位置
1.输出重定向
格式:COMMAND > NEW_POS COMMAND >> NEW_POS
> :覆盖重定向,目标文件汇总的原有内容会被清除
>> : 追加重定向,新内容会追加至目标文件尾部
(1)重定向内容到指定终端
(2)覆盖重定向至文件中
(3)追加重定向到文件中
2.错误输出重定向
2> :覆盖重定向错误输出流
2>> :追加重定向错误输出数据流
3.标准输出和错误输出各自定向至不同位置:
COMMAND > /path/to/somfile 2> /path/to/err.out
4.合并标准输出和错误输出为同一个数据流进行重定向:
&> :覆盖重定向
&>> :追加覆盖重定向
或:
COMMAND > /path/to/file.out 2>&1 (顺序很重要)
COMMAND >> /path/to/file.out 2>>&1
5.# set -C 禁止将内容覆盖已有文件但可以追加
如果需要强制覆盖,则使用:>|
# set +C 允许覆盖
6.():合并多个程序的STDOUT
(cal2007;cal2008) > all.txt