文件输入输出的管理以及管道的使用

在linux操作系统中,一个程序被加载到内存并开始运行后是以进程的形式的形态表现出来的,而系统宗的每一个进程在默认的情况下都有三个标准的通道,分别为标准输入、标准输出和标准错误输出。标准输入的操作代码为0,标准输出的操作代码为1,标准错误输出的操作代码为2。

在linux系统中用普通用户执行命令 find /etc/? -name passwd 有两种输出

正确的为1? 错误的为2

> ? ?#重定向正确输出
2> ? ?#重定向错误输出
&> ? ?#重定向所有输出
2>&1 ? ?#把错误输出的编号由2转换为1

(1) find /etc/ -name passwd? > file.out? ##定向正确输出

(2) find /etc/ -name passwd 2> file.err? ##定向错误输出

(3) find /etc/ -name passwd &> file.all ##定向全部输出


注意:重定向会覆盖原文件内容!

追加则不会覆盖源文件内容

保持原文件内容不变的情况下把输出追加到文件之后

>> ? ?##追加正确输出
2>> ? ?##追加错误输出
&>> ? ?##追加所有输出
(4)find /etc/ -name passwd >> file ##追加正确输出

(5)find /etc -name passwd 2>> file ##追加错误输出

(6)find /etc -name passwd &>> file ##追加所有输出

相关截图不再赘述<< 的应用

当出现EOF时录入结束

使用该命令非交互式修改密码

管道命令" | "把输出变成下一个程序的输入,只能处理经由前面的一个命令传来的正确消息,对于错误的消息并没有直接处理的能力。

例如:


管道只将正确的输出变为输入再进行下一个命令

应用:使用tee命令复制date命令的输出到file中,并统计输出行数

原文地址:https://www.cnblogs.com/zhangyanran/p/9928986.html