Linux shell有三种输入/输出流:标准输入流(standard input)、标准输出流(standard output)和标准错误流(standard error)。每种输入/输出流都有一个文件描述符(或数字标识符)、一个常用的缩写名和一个可用的默认设备。
例如,用键盘输入时,其实就是将输入发送到标准输入流,缩写为stdin,标识为0。当计算机将输出显示到终端时,使用的就是标准输出流,缩写为stdout,标识为1。如果计算机需要报告错误,并在终端上显示错误信息,使用的就是标准错误流,缩写为stderr,标识为2。
使用ls这个普通的命令,查看这三种输入/输出流。在键盘上输入ls,使用的是stdin。输入ls后按Enter键,目录中文件和文件夹的列表通过stdout显示出来。如果对并不存在的文件夹来运行ls命令,终端上出现的错误信息就是通过stderr而提供的。
表4-1能更直观地帮助你理解这三种流。
表4-1 三种输入/输出流 文件描述符(标识符) |
名 称 |
常用缩写名 |
典型的默认设备 |
0 |
标准输入流 |
stdin |
键盘 |
1 |
标准输出流 |
stdout |
终端 |
2 |
标准错误流 |
stderr |
终端 |