Linux重定向

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

1.标准输入重定向

1.1.标准输入重定向介绍

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

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

1.2.标准输入重定向实例

1.2.1.列出文件中的行数

命令:

wc -l </etc/passwd

1.2.2.编写文件

命令:

cat >> /root/a.txt <<EOF

aaaa

bbbb

EOF

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

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

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

命令:

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

cat /root/a.txt

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

3.2.2.列出不存在文件的错误信息追加至/root/stderr.txt

命令:

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

cat /root/stderr.txt

4.重定向混合用法

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

命令:

cat >/root/a.txt <<EOF

ztj

ztj

EOF

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

命令:

cat >>/root/a.txt <<EOF

ztj1

ztj1

EOF

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

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 

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不可省略。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑要上天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值