在我们之前的课程中,我们学习了如何重定向标准输出(stdout)流。同样地,我们也可以管理标准输入(stdin)流。默认情况下,程序从键盘接收其 stdin,但我们也可以使用文件或其他进程的输出来作为输入源。
理解 stdin 和 stdout
Linux 中的每个命令行进程都至少有两个基本数据流:标准输入(stdin)和标准输出(stdout)。程序从 stdin 读取数据,并将其结果写入 stdout。理解如何控制 stdin 和 stdout 对于有效的命令行工作至关重要。
如何重定向 stdin
就像我们使用 > 来重定向 stdout 一样,我们使用 < 运算符来重定向 stdin。这个强大的功能允许您告诉命令从文件读取其输入,而不是等待您在键盘上输入。这是输入重定向的一个核心概念。
使用 cat stdin 的实际示例
让我们回顾一下上一课中的 peanuts.txt 文件,其中包含文本 "Hello World"。考虑以下命令:
cat < peanuts.txt > banana.txt
以下是发生情况的细分:
< peanuts.txt部分告诉 shell 为cat命令重定向 stdin,使其从peanuts.txt读取而不是从键盘读取。cat命令处理其输入。在这种情况下,使用cat stdin意味着它读取peanuts.txt的内容。> banana.txt部分将cat的标准输出重定向到一个名为banana.txt的新文件。
最终,peanuts.txt 的内容被复制到 banana.txt。这个例子有效地演示了如何在单个高效的命令中管理 stdin 和 stdout。