当你继续学习 Linux 时,你已经看到了命令是如何产生输出的。这就引出了我们关于 I/O(输入/输出)流的重要主题,特别是标准输出或 stdout。让我们通过运行以下命令来探索这个概念:
echo Hello World > peanuts.txt
运行后,你会在当前目录中发现一个名为 peanuts.txt 的新文件。如果你查看其内容,你会看到文本 "Hello World"。让我们分解一下发生了什么。
理解标准输出 (stdout)
首先,考虑没有特殊字符的命令:
echo Hello World
默认情况下,许多命令会将它们的结果发送到 stdout,即你的终端屏幕。这就是为什么 echo Hello World 会直接在你的 shell 中显示文本。进程使用 I/O 流来接收输入(标准输入或 stdin)并发送输出。I/O 重定向允许我们更改这种默认行为,从而对数据进行更精细的控制。
使用 > 重定向 stdout
字符 > 是一个重定向运算符。它会拦截原本要发送到 stdout 的数据,并将其发送到一个新的目的地。
>
在我们的示例中,它将 echo Hello World 的输出发送到一个文件,而不是屏幕。如果文件不存在,它将被创建。请小心,如果文件已经存在,此运算符将完全覆盖其内容。
使用 >> 追加 stdout
如果你想向文件中添加内容而不擦除其内容,该怎么办?为此,我们使用 >> 运算符。
echo Hello World >> peanuts.txt
此运算符会将输出追加到指定文件的末尾。如果文件尚不存在,它将被创建,就像 > 运算符一样。掌握 stdout 重定向是你 Linux 之旅中的一个基本步骤。