• 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 之间的内容作为输入。
  • 相关阅读:
    js页面跳转(转载)
    insert into select union 插入数据到sqlserver中会自动排列
    一段没用的代码
    gridview中自动生成的列不可以设置只读
    Treeview 简单遍历,赋值,检查 checkbox
    线程操作一个无限循环,cpu 占用 25% 左右
    相对路径,绝对路径互转
    遍历虚拟网站下所有目录
    一个级联关系的表,向上获取各个字段名的函数
    大家用.net 大部分的工作是在干什么
  • 原文地址:https://www.cnblogs.com/Spground/p/9567890.html
Copyright © 2020-2023  润新知