Linux输入输出重定向

目录

Linux输入输出重定向

Linux中的默认设备

输入输出重定向定义

输入输出重定向操作符

实用形式

标准输入、标准输出、标准错误

输出重定向案例

案例1 --- 输出重定向(覆盖)

案例2 --- 输出重定向(追加)

 案例3 --- 错误输出重定向

案例4 --- 正确和错误都输入到相同位置

 案例5 --- 正确和错误都输入到相同位置

案例6 --- 重定向到空设备/dev/null

输入重定向案例

案例1

 案例2

案例3

使用文件描述符重定向

重定向组合使用

特殊应用


Linux输入输出重定向

Linux中的默认设备

        默认的输入设备(标准输入) --- 键盘

        默认的输出设备(标准输出) --- 屏幕

输入输出重定向定义

        利用重定向操作符可以重新定义命令涉及的默认的输入和输出设备对象,即重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置

输入输出重定向操作符

       “>”“>>”称为输出重定向操作符

        “<”、 “<<” 称为输入重定向操作符

注意:

        重定向操作符本省不是一条命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号

实用形式

使用形式
功能
命令 > 文件或者:命令 1> 文件
将命令执行后的输出信息不在默认的屏幕上显示 , 而是以覆盖的方式写入到指定文件中, 若指定的文件不存在 , 则自动创建该文件
命令 2> 文件
将命令执行后所产生的错误信息不在默认的屏幕上显示 , 而是以覆盖的方式写入到指定文件中, 若指定的文件不存在 , 则自动创建该文件
命令 &> 文件
将命令执行后的输出信息和错误信息不在默认的屏幕上显示 , 而是以覆盖的方式写入到指定文件中, 若指定的文件不存在 , 则自动创建该文件
命令 2>/dev/null
将命令执行后所产生的错误信息不在默认的屏幕上显示 , 而是写入到空设备文件中, 即将输出的错误信息丢弃掉
命令 >> 文件
将命令执行后的输出信息以追加的方式写入到指定的文件中
命令 < 文件
使命令从指定的文件中读取输入数据
命令 << 结束标识字符串
读取命令行输入 , 直到遇到输入行为指定的结束标识字符串

标准输入、标准输出、标准错误

输出重定向案例

案例1 --- 输出重定向(覆盖)

[root@localhost test]# date 1> date.txt

案例2 --- 输出重定向(追加)

[root@localhost test]# date >> date.txt 

 案例3 --- 错误输出重定向

[root@localhost test]# ls /home/ /aaaaa> list.txt 

[root@localhost test]# ls date.txt > list.txt > error.txt //重定向到不同的位置

案例4 --- 正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaaaaa &>list.txt //混合输出

 案例5 --- 正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaaaaa >list.txt 2>&1 //重定向到相同的位置

案例6 --- 重定向到空设备/dev/null

[root@localhost ~]# ls /home/ /aaaaaaaaa >list.txt 2>/dev/null //空设备,即将产生的输出丢掉

输入重定向案例

        标准输入 --- < 等价 0<

案例1

[root@localhost ~]# grep 'root' //没有改变输入的方向,默认键盘,此时等
待输入...
yang sss
sssrootssss..
sssrootssss..
[root@localhost ~]# grep 'root' < /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

 案例2

[root@localhost ~]# dd if=/dev/zero of=/file1.txt bs=1M count=2
[root@localhost ~]# dd </dev/zero >/file2.txt bs=1M count=20

案例3

[root@localhost ~]# at now +5 min
[root@localhost ~]# vim at.txt
useradd yang100
useradd yang102
[root@localhost ~]# at now +2 min < at.txt

注意 --- 使用 Ctrl + D 退出

使用文件描述符重定向

        使用文件描述符的重定向都使用了&符号
形式功能
cmd >&n
把输出送到文件描述符 n
cmd m>&n
把输出到文件符 m 的信息重定向到文件描述符 n
cmd >&-
关闭标准输出
cmd <&n
输入来自文件描述符n
cmd m<&n
m 来自文件描述符 n
cmd <&-
关闭标准输入
cmd <&n-
移动输入文件描述符 n 而非复制它
cmd >&n-
移动输出文件描述符 n 而非复制它

重定向组合使用

        cmd 2>file < >cmd &> file < >cmd >& file
        cmd > file 2>&1
        cmd > f1 2>f2
        tee files

特殊应用

        cat > catfile <<EOF
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

White乄joker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值