• linux 管道命令笔记


    linux使用 | 连接多个命令,被称为管道符,左边命令的输出会变成右边命令的输入,只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。
    这里需要注意,command1 必须有正确输出,而 command2 必须可以处理 command2 的输出结果;而且 command2 只能处理 command1 的正确输出结果,不能处理 command1 的错误信息。

    重定向和管道的区别

    乍看起来,管道也有重定向的作用,它也改变了数据输入输出的方向,那么,管道和重定向之间到底有什么不同呢?

    简单地说,重定向操作符>将命令与文件连接起来,用文件来接收命令的输出;而管道符|将命令与命令连接起来,用第二个命令来接收第一个命令的输出。如下所示:
    有些读者在学习管道时会尝试如下的命令,我们来看一下会发生什么:

    command1 > command2

    答案是,有时尝试的结果将会很糟糕。这是一个实际的例子,一个 Linux 系统管理员以超级用户(root 用户)的身份执行了如下命令:

    cd /usr/bin
    ls > less

    
    第一条命令将当前目录切换到了大多数程序所存放的目录,第二条命令是告诉 Shell 用 ls 命令的输出重写文件 less。
    因为 /usr/bin 目录已经包含了名称为 less(less 程序)的文件,第二条命令用 ls 输出的文本重写了 less 程序,因此破坏了文件系统中的 less 程序。

    管道与输入重定向

    输入重定向操作符<可以在管道中使用,以用来从文件中获取输入,其语法类似下面这样:

    command1 < input.txt | command2
    command1 < input.txt | command2 -option | command3

    管道与输出重定向

    你也可以使用重定向操作符>或>>将管道中的最后一个命令的标准输出进行重定向,其语法如下所示:

    command1 | command2 | ... | commandN > output.txt
    command1 < input.txt | command2 | ... | commandN > output.txt



  • 相关阅读:
    「模拟赛20180306」回忆树 memory LCA+KMP+AC自动机+树状数组
    python写一个通讯录
    Git学习笔记
    交换排序
    用Windows自带的方法创建WiFi
    MySQL之触发器
    插入排序
    range和arange的区别
    Spring前后端跨域请求设置
    三、图的定义及遍历
  • 原文地址:https://www.cnblogs.com/lalalazar/p/15830042.html
Copyright © 2020-2023  润新知