参考资料:
1.视频课程《Linux运维》
2.书籍PDF版《Linux运维 Web集群实战》
3.https://ryanstutorials.net/linuxtutorial/piping.php
4.学习笔记保存在幕布:这里有完整Linux学习笔记哦~
重定向
管道和重定向的作用是保持数据在程序和文件之间流动。
比如说:通常情况下,我们会在屏幕上显示输出,这在大多数情况下很方便,但有时我们可能希望将其保存到文件中以保存为记录,输入另一个系统或发送给其他人。
大于运算符(>)向命令行指示我们希望程序输出(或发送到STDOUT的任何内容)保存在文件中而不是打印到屏幕上。如果我们重定向到不存在的文件,它将自动为我们创建。但是,如果我们保存到已经存在的文件中,那么它的内容将被清除,然后新的输出保存到它。
如果我们不希望原有文件被覆盖,我们可以使用(>>)运算符将新数据附加到文件中。
(<)及(<<)运算符同理。
而管道(|),该操作符可以将数据从一个程序发送到另一个程序。管道的作用是将左侧程序的输出作为右侧程序的输入。
摘要:
>
将输出保存到文件。
>>
将输出附加到文件。
<
从文件中读取输入。
2>
重定向错误消息。
|
将一个程序的输出作为输入发送到另一个程序。
本文主要介绍重定向及其相关内容。
- >或1> 输出重定向:把前面输出的东西输入到后面的文件中,会清除文件原有内容
- >>或1>> 追加输出重定向:把前面输出的东西追加到后边的文件尾部,不会清除原有文件
- 0<或< 输入重定向
例子:
echo '1 2 3 4' >oldboy.txt
xargs -n 2 <oldboy.txt ( xargs -n 2意思即为两个一组分两组,<即把oldboy.txt文件的内容输入给左边处理 )
1 2
3 4
- 0<<或<< 追加输入重定向:后跟字符串,用来表示输入结束,也可以用Ctrl+d来结束输入。
例子:
cat >>/data/oldboy.txt <<EOF (其中cat是命令>>追加输出重定向,把命令放到文件里,然后EOF EOF把内容装到文件里)
i am studying linux
EOF
- 2> 错误重定向:把错误信息输出到后面的文件中,会删除文件原有内容
- 2>>错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容
- 说明: 箭头的指向就是数据的流向
- 数字说明
- 标准输入:0,0<<或0<,数据流向从左到右
- 标准正常输出:1 ,1>>或1>,数据(正确数据)流向从右到左
- 标准错误输出:2,2>或2>>,数据(错误数据)从左到右
例子:
echo oldgirl 1>a.txt 2>b.txt
cat b.txt
-bash cho: command not found
echo oldgirl 1>a.txt 2>a.txt(正确错误都放一个文件)
echo oldgirl 1>a.txt 2>&1(把错误的输出放到和1的输出一样的里面,此方法为常用方法,推荐方法)
echo oldgirl &>a.txt (把正确错误的全放到a里)
网友评论