重定向概述
Linux 系统将所有输入/输出视为文件。重定向功能通过改变这些基本输入/输出流的方向,使得命令的输出可以写入文件而不是显示在屏幕上,或者文件内容可以作为命令的输入。
标准输入/输出流
所有命令默认使用以下三种标准流:
- 标准输入 (stdin, 0): 命令读取数据的通道。默认是键盘。
- 标准输出 (stdout, 1): 命令正常结果输出的通道。默认是屏幕(终端)。
- 标准错误 (stderr, 2): 命令错误消息输出的通道。默认是屏幕(终端)。
重定向运算符
可以使用各种重定向运算符来控制输入/输出的方向。如果直接使用 `redirect` 命令本身,如生成的命令所示,会发生错误。必须使用 `>`、`>>`、`<` 等符号。
1. 标准输出重定向
2. 标准错误重定向
3. 标准输入重定向
生成的命令:
请尝试组合命令。
描述:
`redirect` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
常用示例
通过重定向的各种示例,学习如何控制输入/输出。
将命令结果保存到文件
ls -l > file_list.txt
将 `ls -l` 命令的结果保存到 `file_list.txt` 文件中,如果文件已存在则覆盖。
将多个命令结果追加到同一文件
echo "--- 工作开始 ---" >> log.txt
date >> log.txt
将 `echo` 命令的结果追加到 `log.txt` 文件中,然后将 `date` 命令的结果追加到同一个文件中。使用 `>>` 保留现有内容。
将错误消息单独分离到文件
ls non_existent_file 2> error.log
执行对不存在文件的 `ls` 命令,并将错误消息 (`2>`) 重定向到 `error.log` 文件。正常输出仍显示在屏幕上。
将输入文件传递给命令
sort < numbers.txt
将 `sort` 命令的输入指定为 `numbers.txt` 文件以排序文件内容。`sort` 接收文件内容作为标准输入进行处理。
输出和错误都到一个文件
ls /home non_existent_file &> output_and_error.log
将正常输出和错误消息都保存到 `output_and_error.log` 文件中。