zoukankan      html  css  js  c++  java
  • 【Linux】 2>&1

    linux中有三种标准输入输出,分别是 STDIN,STDOUT,STDERR,对应的数字是 0,1,2。

    STDIN 是标准输入,默认从键盘读取信息; 
    STDOUT 是标准输出,默认将输出结果输出至终端,也就是显示器之类的东西; 
    STDERR 是标准的错误信息,默认也会显示在终端上。 
    由于STDOUT与STDERR都会默认显示在终端上,为了区分二者的信息,就有了编号的0,1,2的定义,用1表示STDOUT,2表示STDERR

    下面举例说明:

    以普通用户登陆(Cent OS 7),执行 find /etc -name passwd 命令,默认会将命令的执行结果(STDOUT)与错误信息(STDERR)都输出至终端显示器。

    体验一下编号 1,2 的作用,find /etc -name passwd 1>find.out 2>find.err ,这里会将 STDOUT 与 STDERR 分别存放至 find.out 和 find.err 中

    个人理解就是 find /etc -name passwd 的命令的执行结果输出正确的输出(STDOUT)被1接收,错误的信息(STDERR)被2接收。

    若要将所有的输出及错误信息都显示出来,可以用&表示全部1和2的信息,例如: 
    find /etc -name passwd &>find.all

    有时候希望将错误的信息重新定向到输出,就是将2的结果重定向至1中就有了”2>1”这样的思路,如果按照上面的写法,系统会默认将错误的信息(STDERR)2重定向到一个名字为1的文件中,而非所想的(STDOUT)中。因此需要加&进行区分。就有了 2>&1 这样的用法:

    find /etc -name passwd 2>&1 |less

    有时候还能看到这样的用法: 
    find /etc -name passwd &2>&1 | less 
    这里可以分解成 
    find /etc -name passwd & 表示前面的命令放到后台执行。 
    2>&1 | less 表示将错误信息重定向至标准输出,并用less进行分页显示

    关注公众号 海量干货等你
  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734365.html
Copyright © 2011-2022 走看看