AI 助教问 AI 助教
东方瑞通 · KYCP

输入输出重定向与管道

重定向改变命令的输入输出来源,管道连接两个命令,标准错误重定向用 2>。

考点精讲

  1. Linux 有三个数据流:标准输入(fd0)、标准输出(fd1)、标准错误(fd2)。输入重定向 <、here 文档 <<、here 字符串 <<<;输出重定向 > 覆盖、>> 追加;错误重定向 2>、2>>;同时重定向输出与错误用 &>、&>>。管道 | 把前一命令的输出作为后一命令的输入。命令替换用反引号 `` 或 $(),把命令输出作为参数。
  2. 前后置引导:前置:先掌握「归档与压缩」(05-文件查找与归档),本页在其基础上展开。;后置:继续学习「软件的安装与卸载」(07-软件的安装与卸载),承接下一知识点。

记忆技巧

记 fd 编号:0 进 1 出 2 错——「0 入口、1 出口、2 犯错」,错误重定向就是 2>。

常见误区

  • 把标准错误当标准输出,漏写 2> 导致错误信息仍打印
  • 混淆 >(覆盖)与 >>(追加)
  • 把 &> 误理解为「后台」,实为同时重定向输出与错误

真题思路

  • 【示例】 将命令的标准错误输出重定向到文件,应使用哪个符号?
    > 2> >> &
    答案:B
    解析:标准错误对应文件描述符 2,用 2> 重定向(讲义 06-输入输出重定向)。

常见问题

Q:> 和 >> 的区别?

A:> 覆盖写入文件,>> 追加到文件末尾。(解析:覆盖与追加。)

Q:把标准输出和标准错误都重定向到同一文件怎么写?

A:用 &> 文件名(或 &>> 追加)。(解析:合并重定向。)

Q:管道 | 的作用是什么?

A:把前一命令的标准输出作为后一命令的标准输入。(解析:命令串联。)

Q:here 文档 << 的用途?

A:把多行内容作为命令的标准输入。(解析:输入重定向特例。)

相关知识

教材出处:06-输入输出重定向 输入输出重定向与管道

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑