zoukankan      html  css  js  c++  java
  • Linux命令中的管道和重定向

    Linux命令中的管道和重定向

    在Linux中有很多标准的命令例如findsortdu等,可以满足我们完成文档管理、系统管理等诸多需求,但是大多时候一些复杂的需求都需要多个命令搭配起来使用,对于Linux来说一个命令对应于一个进程,因此多个命令协同工作,就涉及到多个进程的通信,Linux提供一种管道的方式来完成进程间通信。

    Linux很多命令都需要输入、输出以及错误信息,默认的输入输出以及错误信息都是标准输入(键盘)和标准输出(屏幕),但有时候我们希望输入、输出、错误信息是从其他地方输入、输出到其他(例如文件),这里就会涉及到输入、输出、错误信息的重定向。

    管道符

    管道在Linux中对应管道符号 |

    CommandA | CommandB
    CommandA | xargs CommandB
    

    CommandA执行的输出作为CommandB的输入。

    例如:

    ls -l|xargs head -10 # 列出前十个文件

    输入输出重定向

    输入重定向

    输入重定向符号: <

    CommandA < file

    输入重定向到file

    特殊的输入重定向符号 <<

    CommandA <<EOF
    abc
    def
    EOF

    EOF之间的内容作为输入。

    输出重定向

    输出重定向符号: >(覆盖), >> (追加)

    Command > file
    Command >> file

    文件描述符

    系统中默认的文件描述符号:

    • 0 标准输入
    • 1 标准输出
    • 2 标准错误输出

    例如:

    ls -l > file 2 > /dev/null # 将输出重定向到file,且将错误输出重定向到/dev/null中

    这里/dev/null只有个特殊的文件,重定向这里的输出都会被其丢弃,因此有时候为了抑制错误输出,则只需要将其重定向到黑洞/dev/null即可。

    总结

    命令 说明
    command > file 将输出重定向到 file。
    command < file 将输入重定向到 file。
    command >> file 将输出以追加的方式重定向到file。
    n > file 将文件描述符为 n 的文件重定向到 file。
    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
    n >& m 将输出文件 m 和 n 合并。
    n <& m 将输入文件 m 和 n 合并。
    << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
  • 相关阅读:
    P1227 【[JSOI2008]完美的对称】
    Hive使用Calcite CBO优化流程及SQL优化实战
    深入浅出Calcite与SQL CBO(Cost-Based Optimizer)优化
    神奇的传送门
    怎么设计一个秒杀系统
    我的收藏
    Redis 客户端 Jedis、lettuce 和 Redisson 对比
    Redis 的完整安装过程
    Redis GEO 功能使用场景
    Redis 传送门
  • 原文地址:https://www.cnblogs.com/Spground/p/9567890.html
Copyright © 2011-2022 走看看