linux操作系统之标准输入输出

一、简介

linux下的标准输入输出主要是三种,分别是标准输入、标准输出、标准错误输出。
一般来说标准输入即是从键盘输入,标准输出、标准错误输出即是输出到终端。一般来说都是展现到屏幕上。
在shell下0代表标准输入、1代表标准输出、2代表标准错误输出。

二、重定向符号

>和>>为重定向符号,配合上面中对应的数字,可以将一些信息重新定向到对应的文件。 >后面的&,表示重定向的目标不是一个文件,而是一个文件描述符。

三、内置的文件描述符

1 => stdout
2 => stderr
0 => stdin

四、文件描述符详解

标准输入 (stdin) :文件描述符为 0 ,使用 < 或 << ; /dev/stdin ->/proc/self/fd/0 0代表:/dev/stdin
标准输出 (stdout):文件描述符为为 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1 1代表:/dev/stdout
标准错误输出(stderr):文件描述符为 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr

五、常用方式

1.把make命令产生的所有输出都重新到文件中

make xxx> build_output.txt

此种情况只是默认把标准输出重定向到标准文件中,所以当有错误信息,还是会把信息输出到屏幕上。

2.把make命令产生的错误输出重定向到文件中

make xxx 2> build_output.txt

3.想要把正常输出信息和错误信息输出到分别的文件中,可以用

make xxx 1> build_output_normal.txt 2>build_output_error.txt

即联合使用了1和2,正常信息和错误信息,都输出到对应文件中了。

4.所有的信息都输出到同一个文件中

make xxx > build_output_all.txt 2>&1

其中的2>&1表示错误信息输出到&1中。 注意:上面所有的1,2等数字,后面紧跟着大于号’>’ ,中间不能有空格。

六、参考博文

【整理】将Linux脚本中的正常输出,警告,错误等信息输出到文件中

shell 1>&2 2>&1 &>filename重定向的含义和区别

Linux标准输入输出

shell中2>&1之类的命令中’&’是什么意思?

Previous Post

centos7目录结构

Next Post

shell

Related Posts