>
或>>
操作符分别是将标准输出导向一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)
本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。当然也有<
和<<
操作符,它们的区别在于重定向的方向不一致而已,>
表示是从左到右,<
右到左。
简单回顾重定向:
$ echo 'hello shiyanlou' > redirect
$ echo 'www.shiyanlou.com' >> redirect
$ cat redirect
简单的重定向
在更多了解 Linux 的重定向之前,我们需要先知道一些基本的东西,前面我们已经提到过 Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin
(标准输入,对应于你在终端的输入),stdout
(标准输出,对应于终端的输出),stderr
(标准错误输出,对应于终端的输出)
文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。
我们可以这样使用这些文件描述符:
默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出(无重定向,因没有>
符号)
$ cat //(按Ctrl+C退出)
将cat的连续输出(heredoc
方式