Linux/Unix 命令行:输入输出重定向

    在Unix系统中,任何命令,包括Shell本身,默认情况下总是读取来自终端键盘输入的数据,这个数据输入源通常称作标准输入(stdin),其文件描述符为0.
    默认情况下,命令的处理结果总是输出到用户终端的屏幕上,这个输出目的通常称作标准输出(stdout),其文件描述符为1.
    另外,在命令的执行期间,如果出现问题,相应的错误信息默认情况下也将输出到用户的终端屏幕上,这个输出目的通常称作标准错误输出(stderr),其文件描述符为2.

    有上面的基础知识后,我们现在来讨论Linux/Unix系统命令行的精妙之处:输入输出重定向.
    例如:
       ls -l > fname
    上述命令就是把ls命令的返回结果输出到fname这个文件中去,但是要注意的事情是输出前将清空原文件内容(如果原文件存在).使用ls -l >>fname这个命令是将结果附加到原文件后面.
       grep root < fname
    上述命令是在fname这个文件中寻找带有root这个字段的内容,是把标准输入重定向为文件输入.

上述命令其实是简化后的形式,其原始形式为
    0 < fname   把标准输入重定向到指定文件中
    1 > fname   把标准输出重定向到文件中
    2 > fname   把标准错误输出重定向到文件中

还有一个重要的用法
    i>& j   把文件描述符i表述的输出文件重定向到文件描述符j表示的文件
    例如: 
       command_1 2 >& 1   把这个错误命令的标准错误输出重定向到标准输出

其原理是用指针实现的.
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值