day 13 重定向 管道

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 --->将打印出来的目录删除

你可能感兴趣的:(day 13 重定向 管道)