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

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

作者: 逆小苍 | 来源:发表于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