0Pricing
DevOps Bootcamp · 课时

输入/输出重定向(>、>>、<)

掌握将命令输出重定向到文件,以及将文件作为命令输入的方法,提升脚本的灵活性。

输入/输出重定向(>、>>、<) 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

什么是输入/输出重定向

在 Linux 中,命令通常会产生输出或需要输入。输入/输出(I/O)重定向可以改变命令获取输入或发送输出的位置。

您不必只能在屏幕(终端)上查看输出,还可以将其保存到文件中,甚至将文件内容直接传给另一个命令。

理解标准数据流

每个 Linux 命令都会与三种“标准”数据流交互:

  • 标准输入(STDIN):命令接收输入的位置(通常是键盘)。
  • 标准输出(STDOUT):命令发送正常输出的位置(通常是屏幕)。
  • 标准错误(STDERR):命令发送错误消息的位置(通常也是屏幕)。

重定向允许我们更改这些默认目标或来源。

使用“>”捕获输出

> 运算符用于将命令的标准输出(STDOUT)重定向到文件。命令的输出不会显示在屏幕上,而是会写入指定文件。

重要:如果文件已经存在,> 会用新输出覆盖其全部内容。请注意,不要误删重要数据!

示例:保存命令输出

让我们将 ls -l 命令的输出保存到名为 my_files.txt 的文件中。然后使用 cat 查看该文件的内容。

ls -l > my_files.txt
cat my_files.txt

使用“>>”追加到文件

有时您不想覆盖文件,而是想将新内容添加到文件末尾。这正是 >> 运算符的用途!

>> 会将标准输出(STDOUT)重定向到文件;但如果文件已经存在,它会将新输出追加到文件末尾,同时保留原有内容。

示例:追加到日志

首先创建一个简单文件。然后使用 >> 向其中添加另一行。请观察原有内容是如何保留的。

echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txt

使用“2>”处理错误

错误消息该怎么办?它们会发送到标准错误(STDERR)。要将 STDERR 重定向到文件,需要使用文件描述符 2,后跟 > 运算符:2>。

这对于记录错误而不让主要输出变得杂乱,或调试脚本来说非常有用。

示例:记录错误消息

让我们尝试列出一个不存在的目录。错误消息通常会显示在屏幕上,而我们会将其重定向到 errors.log。

ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.log

使用“<”提供输入

< 运算符用于重定向标准输入(STDIN)。命令不再等待您通过键盘输入,而是会直接从指定文件读取输入。

对于需要大量输入的命令,或当您想直接处理文件内容时,这种方式对于自动化任务非常有用。

示例:从文件中排序

我们会创建一个包含未排序名称的文件,然后使用 < 让 sort 命令从该文件读取输入。

echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txt

快速检查:重定向

您已经学习了如何重定向标准输出、追加输出、处理错误,以及从文件提供输入。让我们测试一下您对这些内容的理解。

回顾:I/O 重定向的强大功能

做得很好!您已经掌握了 Linux 中 I/O 重定向的基础知识。

  • > 重定向 STDOUT,并覆盖文件。
  • >> 重定向 STDOUT,并向文件追加内容。
  • 2> 重定向 STDERR,捕获错误消息。
  • < 重定向 STDIN,使命令能够从文件读取内容。

这些运算符对于编写脚本、记录日志和自动执行任务非常强大。请继续练习!

常见问题解答

「输入/输出重定向(>、>>、<)」课时是免费的吗?

是的 — 「输入/输出重定向(>、>>、<)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「输入/输出重定向(>、>>、<)」这节课中我会学到什么?

掌握将命令输出重定向到文件,以及将文件作为命令输入的方法,提升脚本的灵活性。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「输入/输出重定向(>、>>、<)」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 管理进程(ps、top、kill)
  2. 输入/输出重定向(>、>>、<)
  3. 通过管道连接命令(|)
  4. 后台任务与任务控制
← 返回 DevOps Bootcamp