1.理解系统的输入输出
linux系统中,编号1管理正确输出,2管理错误输出
2.管理输入输出的符号
(1)输出重定向
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
>> file 2>&1 ##将错误的流转成正确的流,并追加到file里
/dev/null 相当于一个黑洞,所有没有用的东西都可以往里面放,对于没有用的输出都可以重定向到这个目录。
注意:重定向会覆盖原文件内容
find /etc/ -name passwd > file ##定向正确输出到file
find /etc/ -name passwd 2> file.err ##定向错误输出到file
find /etc/ -name passwd &> file.all ##定向所有输出到file
> file ##清空file
示例:
定向正确输出到file
定义错误输出到file
定义全部输出到file
(2)输出追加
#>> ##追加正确输出到文件最后
#2>> ##追加错误输出到文件最后
#&>> ##追加所有输出到文件最后
注意: 追加不会覆盖源文件内容
示例:
find /etc/ -name passwd >> file ##追加正确输出到file
find /etc/ -name passwd 2>> file.err ##追加错误输出到file
find /etc/ -name passwd &>> file.all ##追加所有输出到file
>覆盖 >file 清空
>>追加
示例:
追加正确输出到file
追加错误的输出到file
3.管道符的应用
1.管道的作用
管道的作用是把前一条命令的输出变成后一条命令输入
注意:
只允许正确输出
输出变成输入,而变成输入的输出,会被第二条命令处理
如果需要保存输出内容,那么需要符之一份输出,命令tee
此实验在普通操作:
find /etc/ -name passwd | wc -l ###会看到的结果为2,因为错的不能通过管道
find /etc/ -name passwd 2>&1 | wc -l ###看到19 ,把输出错误改为输出正确的并输出
find /etc/ -name passwd 2>&1 | tee file | wc -l ### tee复制一份输出到file文件中,并统计行号
示例:
4.输入重定向
cat > file <<dd ##cat有交互,不能用echo无交互 dd表示开始/结束字符可任意
>hello
>world
>dd
cat file ##显示了file的内容
hello
world