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 之间的内容作为输入。
  • 相关阅读:
    LeetCode——376.摆动序列
    kaggle——分销商产品未来销售情况预测
    LeetCode——264. 丑数 II
    LeetCode——71.简化路径
    LeetCode——15. 三数之和
    kaggle——NFL Big Data Bowl 2020 Official Starter Notebook
    LeetCode——199. 二叉树的右视图
    数据结构与算法——哈希函数和哈希表等(2)
    数据结构与算法——哈希函数与哈希表等(1)
    Python——Pandas 时间序列数据处理
  • 原文地址:https://www.cnblogs.com/Spground/p/9567890.html
Copyright © 2011-2022 走看看