1.什么是重定向
将原本要输出到屏幕的数据信息,重新定向到某个指定的文
件中。
2.为何要使用重定向
1.当屏幕输出的信息很重要,而且希望保存重要的信息时;
2.后台执行中的程序,不希望它干扰屏幕正常的输出结果时;
3.系统的理性命令,例如定时任务的执行结果,希望可以存下来时;
4.一些执行命令,我们已经知道他可能要出现错误信息,想把它直接丢弃时;
5.错误日志与正确日志需要分别输出至不同的文件保存时;
3.学习重定向的预备知识,标准输入与输出
当运行一个程序时通常会自动打开三个标准文件,分别是标准输入,标准输出,错误输出
1.标准输入,标准输出,错误输出
[图片上传失败...(image-ac9262-1565339700168)]
这里有一张图特别形象
[图片上传失败...(image-52f340-1565339700168)]
stdin表示键盘输入(0)------>进程(process)------->标准输出(stdout)(1正确的输出) -------->错误输出(stderr)(2 错误的输出)
2.输出重定向
输出重定向,改变输出内容的位置。输出重定向有如下几种方式;
[图片上传失败...(image-e204e8-1565339700168)]
第一种:“>” 标准输出重定向,先清空文件,后写入(假如里面有内容,会先清,再放)
第二种:">>" 标准追加输出重定向,向目标文件末尾追加内容
第三种:"2>" 标准错误输出重定向,先清空文件,再写入
第四种:"2>>" 将错误结果以追加的方式输出到指定文件末尾
例如: a,b 都表示文件 A.将标准输出和标准错误输出重定向到不同文件: find /etc -name 1>a 2>b
B.将标准输出和标准错误重定向到同一个文件,混合输出 find /etc -name &ab
3.输入重定向
输入重定向,表示 原本从键盘等上获得的输出信息,重定向有命令的输出作为输入
< 输入重定向
; cmd1 ; cmd2 无论前者命令成功还是失败,都执行后者命令
&& cmd1 && cmd2 前者命令执行成功,后者命令才会执行
|| cmd1 || cmd2 前者命令执行失败,后者命令才会执行
& 将程序放入后台执行 ( screen 将程序放入后台 )
4.进程管道技术
1.什么是管道
管道符号"|" ,主要用来练级左右两个命令,将左侧的命令的标准输出交给右端命令的标准输入
:无法传递标准错误输出至后者命令
管道流程图
[图片上传失败...(image-fe885e-1565339700168)]
管道命令符号能让大家掌握命令之间的搭配使用方法,进一步提高命令输出的处理效率
2.管道中的tee技术
[图片上传失败...(image-1aa3f9-1565339700168)]
管道符号中tee 技术表示的是我在管道处理进程中,可以命令输出结果输出到文件或者终端,而不会影响正在进行的进程
[图片上传失败...(image-81975c-1565339700168)]
3. xargs 用于参数传递,主要让一些不支持管道的命令可以使用管道技术
例如 which 和 ls 就不支持管道符号
我们可以用xargs 作为它们之间的参数传递
which cat | xargs ls -l
ls | xargs rm -f --->将打印出来的目录删除