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进行分页显示

    关注公众号 海量干货等你
  • 相关阅读:
    java学习笔记(二)分布式框架Dubbo+zookeeper搭建
    java学习笔记(一) 服务器的认识
    用slf4j+logback实现多功能日志解决方案 --- 转
    9.3.2 The force and release procedural statements
    3.7.4 Tri0 and tri1 nets
    9.3.1 The assign and deassign procedural statements
    10. Tasks and functions
    6.1.2 The continuous assignment statement
    df 查看磁盘使用情况
    信息学竞赛知识点整理
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734365.html
Copyright © 2011-2022 走看看