重定向 
 
标准错误重定向是一种Linux/Unix操作系统中常见的输入输出重定向技术,用于将程序的错误输出(stderr)重定向到文件或程序的标准输出(stdout)上,从而实现对程序输出结果的控制和管理。 
 
在Linux/Unix系统中,每个进程都有三个标准的I/O流: 
 
标准输入(stdin):通常输入设备为键盘; 
标准输出(stdout):通常输出设备为屏幕; 
标准错误(stderr):通常输出设备为屏幕,用于输出错误信息。 
当程序执行时,如果没有进行重定向操作,三个I/O流将连接到终端设备(通常为屏幕和键盘)。当程序发生错误时,错误信息会输出到标准错误流(stderr),并打印在屏幕上。这时,用户不方便对错误信息进行保存、查看和处理。 
 
使用标准错误重定向技术,可以将程序的错误输出流(stderr)重定向到文件或程序的标准输出流(stdout)上,以方便对程序的输出进行控制、管理和分析。例如,将错误日志输出到一个文件: 
 
command > output.txt 2> error.txt   (注意这里>代表标准输出流,>2代表错误流,等于command的输出被分流了) 
 
需要注意的是,标准输入、标准输出和标准错误三者之间是相互独立的,因此需要对它们进行单独的重定向操作。 
 
 
管道命令命令A|命令B --> 命令A的输出当做命令B的输入 管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。 例如,统计系统设备目录 /dev 下有多少个文件或子目录: ls -l /dev | wc -l 
———————————————— 
版权声明:本文为CSDN博主「路上阡陌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 
原文链接:https://blog.csdn.net/m0_51431003/article/details/130340869 
 
ls -l > out.file 2>&1 & 
解释: 
ls -l > out.file //将ls的输出重定向到文件out.file 
2>&1 //在shell中,文件描述符通常是:STDIN,STDOUT,STDERR,即:0,1,2,由此可以看出,它将ls -l > out.file在输出过程中产生的错误信息也放在了STDOUT,即:1中,你可以作实验,如果命令产生了错误,那么错误信息也就在out.file中. 
最后的& ,不用说,是放在后台运行. 
 
ref:  http://www.yesweb.net/202304/4339.html 
 
Linux tee命令 
 
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。 
 
 
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 
 
 
- -a或--append  附加到既有文件的后面,而非覆盖它.
 - -i或--ignore-interrupts  忽略中断信号。
 - --help  在线帮助。
 - --version  显示版本信息。
 
 
  
 
xargs  指令 用于将命令A的输出放在命令B之后,作为命令B的参数使用。 
如下: 
commnad A | xargs command B  
 
实例使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令: $ tee file1 file2                   #在两个文件中复制内容 以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示: My Linux                        #提示用户输入数据 
 
My Linux                        #输出数据,进行输出反馈   
 
 
此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。  
  
 
 
 
 
 
 
 |