linux运维开发之路(三)— 输入输出重定向篇
一、 理解系统的输入输出
输入:通过我们的键盘、鼠标和其他硬件在系统中录入的字符。
输出:系统接受到我们输入的功能字符后,经过进程的处理产生的字符(输出有两种出现,编号为1的正确输出以及编号为2的错误输出,这两种输出都会被系统默认定向到字符设备中)
二、管理输入输出的符号
输出重定向
> 重定向正确输出
2> 重定向错误输出
&> 重定向所有输出
注意: 重定向会覆盖原文件内容
find /etc/ -name passwd > file ## 重定向正确的输出到file文件,错误的到字符设备。
find /etc/ -name passwd 2> file ## 重定向错误的输出到file文件,正确的到字符设备
find /etc/ -name passwd &> file ## 重定向所有的输出到file文件
输出追加
>> 追加正确的输出到文件最后
2>> 追加错误的输出到文件最后
&>> 追加全部的输出到文件最后
注意:追加不会覆盖原文件的内容
find /etc/ -name passwd >> file
find /etc/ -name passwd 2>> file ## 将错误的输出追加到file文件以前内容的结尾,不会覆盖file文件原先的内容
find /etc/ -name passwd &>> file ## 将所有的输出继续追加到file文件
>file ## 删除file里面的所有内容
三、管道符的应用
管道的作用
“|” 将前一条命令的输出变成后一条的输入
注意:
管道只允许正确的输出通过
如果需要保存输出内容,那么需要复制一份输出,用到的命令是 “tee”
find /etc/ -name passwd | wc -l
find /etc/ -name passwd 2>&1 | tee file | wc -l 保存所有输出并统计行数
四、输入重定向
cat > file <<EOF
hello
world
EOF
> 输入重定向会覆盖原先文件file的内容
cat >> file <<EOF
hello
world
EOF
>> 输入追加重定向不会覆盖原先文件file的内容