标准I/O重定向和管道

1.标准输入和输出

读入数据:Input
输出数据:Output

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

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

2.I/O重定向:
I/0重定向:将默认的输入,输出或错误对应的设备改变,指向新的目标

标准输出和错误重新定向
STDOUT和STDERR可以被重定向到指定文件,而非默认的当前终端

格式:命令 操作符号 文件名

操作符号:
1> 或者 > ---把STDOUT重定向到文件
2> ---把STDERR重定向到文件
&> ---把所有输出重定向到文件

---追加标准输出重定向至文件

2>> ---追加标准错误重定向至文件
&> ---覆盖重定向
&>> ---追加重定向

标准重定向:
从文件中导入STDIN,代替当前终端的输入设备,使用<来重定向标准输入

tr转换和删除字符:

tr [OPTION]....SET1 [SET2]
-d --delete:删除所有属于第一字符集的字符
-s --squeez-repeats:把连续重复的字符集以单独一个字符表示,即去重
-t --truncate-set1:将第一个字符集对应字符转换为第二字符集对应的字符
-c -C --complement:取字符集的补集。tr 'a-z' 'A-Z' < /etc/issue   ----把/etc/issue中的小写字符都转换成大写字符
tr -d abc < /etc/fstab   ---删除fstab文件中的所有abc任意字符

标准输入重定向:
利用 < 可以将标准输入重定向

cat < file1 > file2
cat < file1 >> file1

把多行重定向
使用"<<终止词"命令从键盘把多行重导向给STDIN,直到终止词位置之前的所有文本都发送给STDIN,有时被称为就地文本(here documents)

终止词可以是任何一个或多个符号,比如:!,@,$,EOF(End Of Fline),其中EOF比较常用

3.管道:
管道使用符号 | 表示,用来连接多个命令
格式:命令1|命令2|命令3|....

将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

tree命令:利用tree命令可以重定向到多个目标
格式:
命令1|tree [-a] 文件名 | 命令2

选项
-a 追加