美文网首页
标准输入、标准输出、标准错误简介

标准输入、标准输出、标准错误简介

作者: 逆小苍 | 来源:发表于2021-08-29 15:57 被阅读0次

    当Linux执行一个程序时,会自动打开三个流:

    标准输入:0 (默认是键盘)
    标准输出:1(默认是屏幕)
    标准错误:2(默认是屏幕)

    >重新定向

    比如现有文件a.log
    文本内容为:this is a.log
    当我们执行命令cat a.log时,系统默认将其输出到标准输出也就是屏幕,通过符号>我们可以将其输出重定向到另一个文本里:
    cat a.log > copya.log
    此时我们可以看到copya.log里的文本内容为:this is a.log
    事实上,上述命令实际是 cat a.log 1> copya.log的缩写,表示把命令cat a.log的标志输出重定向到copya.log
    注意1>是紧挨着的 不能分开写

    同样,如果想把标准错误重定向到另一个文件里可以如下操作:

    cat notexist.log 2> err.log
    因为notexist.log不存在,直接执行cat notexist.log报错如下:
    cat: notexist.log: No such file or directory
    我们打开err.log会发现内容和上面一样,表示把命令的cat: notexist.log的标志错误输入到err.log里面了

    crontab里常见的配置command >/dev/null 2>&1的含义

    > 等价于 1>也就是代表命令的标准输出
    /dev/null 可以看作黑洞,等价于一个只写文件。所有写入它的内容都会永远丢失,尝试从它那儿读取内容则什么也读不到。
    2表示stderr标准错误
    &表示等同于的意思,2>&1,表示2的输出重定向等同于1

    相关文章

      网友评论

          本文标题:标准输入、标准输出、标准错误简介

          本文链接:https://www.haomeiwen.com/subject/uaawiltx.html