输入/输出重定向(>、>>、<)
掌握将命令输出重定向到文件,以及将文件作为命令输入的方法,提升脚本的灵活性。
输入/输出重定向(>、>>、<) 是 CoddyKit 上的免费 Linux Command Line & Bash Scripting Mastery 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Command Line & Bash Scripting Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Command Line & Bash Scripting Mastery 课程共包含 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 导师)并解锁 Linux Command Line & Bash Scripting Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Command Line & Bash Scripting Mastery 课程共包含 4 节课。
「输入/输出重定向(>、>>、<)」这节课中我会学到什么?
掌握将命令输出重定向到文件,以及将文件作为命令输入的方法,提升脚本的灵活性。 你通过在浏览器中直接运行的动手代码来练习 Linux Command Line & Bash Scripting Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Command Line & Bash Scripting Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Command Line & Bash Scripting Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「输入/输出重定向(>、>>、<)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Command Line & Bash Scripting Mastery 课中编写并运行代码吗?
能。每节 Linux Command Line & Bash Scripting Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 管理进程(ps、top、kill)
- 输入/输出重定向(>、>>、<)
- 通过管道连接命令(|)
- 后台任务与任务控制