zoukankan      html  css  js  c++  java
  • linux中的>、>>、2>&1、管道命令

    认识一下linux中的输入输出

    每一个命令运行的时候都会连接三个stream流

    • STDIN (0) - 标准输入,描述符为0
    • STDOUT (1) - 标准输出,描述符为1,用&1表示标注输出流
    • STDERR (2) - 标准错误,描述符为2

    可以使用重定向或管道命令连接输入和输出。

    <:将文件重定向到标准输入中。不常用,一般需要标准输入的命令,都能自己读取。而且,从标准输入中读数据,无法获取到文件名。

    # cat展示 sout 中的内容
    cat < sout
    #从 sout 中查询redis
    grep redis < sout
    #这是我知道的一个比较好的用法
    #docker cp 可以将输入流中的tar拆包后放入容器的指定目录中
    docker cp - ub:/opt < ifstat-1.1.tar
    

    >:将标准输出重定向到某个文件中,覆盖文件内容

    #将 ll 的标准输出输出到文件 sout 中,可以通过cat out.txt查看 ll 的执行结果
    ls > sout
    #上面的命令等同于。>符号前面的1表示标准输出,可以省略。
    ls 1> sout
    #执行上面的命令不会有任何输出,因为上面的命令的执行结果被放到了 sout 中
    
    #asdjkfhka是一个不存在的目录,这时控制台会输出错误,这个命令只把标准输出重定向到了 sout 中,标准错误依然输出到屏幕
    ls asdjkfhka > sout
    #将标准输出输出到 sout 中,将标准错误也输出到 sout 中。
    ls asdjkfhka > sout 2> sout
    
    #将标准输出输出到 sout 中,将标准错误输出到标准输出中
    #&1必须紧跟2>不然会报错
    #因为标准错误重定向引用了标注输出的重定向,所以标准输出的重定向必须先设置
    ls asdjkfhka > sout 2>&1
    #上面用&1表示标准输出流,如果不加&,则会被解析成文件名,则会被重定向到文件 1 中
    

    >>:将标准输出重定向追加到某个文件中。

    #将 ll 的标准输出结果追加到文件 sout 中
    ls >> sout
    

    |:将它前面的命令的标准输出重定向到它后面的命令的标准输入中。

    #将ll的标准输出重定向给less命令
    ll | less
    #用的较多的场景
    ps -ef | grep redis
    #会将 ls 的输出重定向给 cat,cat 将输出重定向到 out
    ls | cat > out
    #dkjfahgf是一个不存在的文件,管道并没有把ls的标准错误重定向给 cat,而是直接输出在了命令行
    ls dkjfahgf | cat > err
    

    参考:

  • 相关阅读:
    b/s批量下载文件
    b/s批量下载图片
    python函数总结(转载的 有空看下)
    使用命令行执行需要传参的 py文件的方法
    Jmeter3.1官方自带的HTML图形测试报告 + 汉化 (Jmeter 3.1~5.0通用)(有空试一下)
    Jmeter 获取响应时间图形、TPS的三个插件(有空试一下)
    把表里面的字段连起来 输出到一个字段里面的方法 concat()
    testng要了解的
    包的相互调用的方法
    包目录展示方法设置,和 包里面建包的方法
  • 原文地址:https://www.cnblogs.com/macho8080/p/15188328.html
Copyright © 2011-2022 走看看