标准 I/O 流
Linux shell 可以接收和发送字符序列或字符流形式的输入和输出。无论实际的字符流是来自还是来自文件,键盘,显示器上的窗口或其他IO设备,字符流都可以通过文件IO技术进行访问。Linux shell 使用3种标准的I/O流,每种流都与一个文件描述符。Linux 内核采用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
1 | stdout //标准输出流,它显示命令运行的输出,文件描述符为 1 |
输入流通常通过终端敲击键盘为程序提供输入。输出流通常向终端输出显示文本字符。
重定向
在Linux命令行模式中,如果命令所需的输入不是来自键盘,而是来自指定的文件,这就是输入重定向。同理,命令的输出也可以不显示在屏幕上,而是写入到指定文件中,这就是输出重定向。
> 符号
格式 {stdout|stderr} > filename
,使用 >
符号将左侧输出重定向到一个文件中。需要注意的是:如果文件名不存在则创建它,如果存在则覆盖。
1 | ➜ echo "hello" > a.txt |