Linux重定向

Linux重定向,顾名思义:更改重新更改命令读取/输入以及输出的方式、方向。Linux重定向有三种类型,分别是标准输入重定向、标准输出重定向、标准错误输出重定向,下面分别对其进行详细讲解。

1.标准输入重定向

1.1.标准输入重定向介绍

标准输入(stdin),编号为0,bash命令从stdin获取输入,默认情况下,键盘作为输入方式。重定向符号为:<、<<

另外,"0<"和"<"是一个意思,默认情况下,标准输入的0可以省略。

1.2.标准输入重定向实例

1.2.1.列出文件中的行数

命令:

wc -l

Linux重定向_第1张图片

1.2.2.编写文件

命令:

cat >> /root/a.txt <

aaaa

bbbb

EOF

Linux重定向_第2张图片

备注:红色字体"定格"修改:“顶格

2.标准输出重定向

2.1.标准输出重定向介绍

标准输出(stdout),编号为1,bash命令将输出发送到stdout,默认情况下,显示器作为输出媒介。重定向符号为:>、>>

另外,在标准重定向输出中

1."1>"和">"及"1>>"和">>"是一个意思,默认情况下,标准输入的1可以省略。

2.带有>的命令输出将覆盖现有文件内容。

3.带有>>的命令输出将追加至现有文件内容的下方。

2.2.标准输出重定向实例

2.2.1.列出文件中的行数至另一个文件

命令:

wc -l /etc/passwd >/root/tongji.txt

cat /root/tongji.txt

Linux重定向_第3张图片

2.2.2.往/root/a.txt追加内容

命令:

echo "zhuijia" >>/root/a.txt

cat /root/a.txt

Linux重定向_第4张图片

3.标准错误输出重定向

3.1.标准错误输出重定向介绍

标准输出(stderr),编号为2,bash命令将错误输出发送到stderr,默认情况下,显示器作为输出媒介。重定向符号为:2>、2>>

另外,在标准错误重定向输出中

1."2>"和"2>>"中,2是不能省略的

2.带有>的命令输出将覆盖现有文件内容。

3.带有>>的命令输出将追加至现有文件内容的下方。

3.2.标准错误输出重定向实例

3.2.1.列出不存在文件的错误信息至某一个文件

命令:

ls -l ztj.txt 2>/root/stderr.txt

cat /root/stderr.txt

Linux重定向_第5张图片3.2.2.列出不存在文件的错误信息追加至/root/stderr.txt

命令:

ls -l ztj-1.txt 2>>/root/stderr.txt

cat /root/stderr.txt

Linux重定向_第6张图片

4.重定向混合用法

4.1.以覆盖的方式,往现有/root/a.txt文件输入内容

命令:

cat >/root/a.txt <

ztj

ztj

EOF

Linux重定向_第7张图片

4.2.以追加的方式,往现有/root/a.txt文件输入内容

命令:

cat >>/root/a.txt <

ztj1

ztj1

EOF

Linux重定向_第8张图片

4.3.执行某命令,将标准错误输出和标准输出的内容输出[追加]到标准输出的文件中

"1>"和">"及"1>>"和">>"是一个意思,默认情况下,标准输入的1可以省略。

命令:

ls -l /root/a.txt >>/root/stdin.txt 2>&1

ls -l /root/ztj.txt >>/root/stdin.txt 2>&1

OR

ls -l /root/a.txt 1>>/root/stdin.txt 2>&1

ls -l /root/ztj.txt 1>>/root/stdin.txt 2>&1

OR

ls -l /root/a.txt &>>/root/stdin.txt

ls -l /root/ztj.txt &>>/root/stdin.txt

Linux重定向_第9张图片

4.4.执行某命令,将标准输出和标准错误输出的内容输出[追加]到标准错误输出的文件中

该方法了解即可,99.99%的情况下不会用。

命令:

ls -l /root/a.txt 2>>/root/stderr.txt 1>&2

ls -l /root/ztj.txt 2>>/root/stderr.txt 1>&2 

Linux重定向_第10张图片

4.5.2>&1和1>&2的区别

2>&1和1>&2的区别

-->2>&1 错误返回值传递给1输出通道,&1表示1输出通道,然后通过1输出通道记录至/root/stdin.txt文件

E.g:

ls -l /root/a.txt 1>>/root/stdin.txt 2>&1   红色标记为1输出通道,其中1可以省略。

-->1>&2 正确返回值传递给2输出通道,&2表示2输出通道,然后通过2输出通道记录至/root/stderr.txt文件

E.g:

ls -l /root/a.txt 2>>/root/stderr.txt 1>&2  红色标记为2输出通道,其中2不可省略。

你可能感兴趣的:(linux特殊符号,linux,服务器,运维,重定向)