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

    关注公众号 海量干货等你
  • 相关阅读:
    使pre的内容自动换行
    textarea文本换行和页面显示换行符
    SQL查询包含汉字的行
    网站引导页插件intro.js 的用法
    jquery.cookie中的操作
    sql自动生成汉语拼音和首字母函数
    IE,Chrome滚动条样式CSS
    Vcenter server 5.5上传ISO镜像
    Vcenter server 5.5添加用户角色及分配权限
    Vcenter server 5.5安装部署
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734365.html
Copyright © 2020-2023  润新知