Shell 入门教程(十五):输出重定向

在写 Shell 脚本的时候,我们经常会想将命令的输出结果保存到文件中,或者将命令的执行结果保存到日志记录中。这时候就需要把命令的输出结果重定向。而要进行重定向,就要了解 Linux 的输入输出流。

在 Linux 中有三个经常用到的输入输出流,他们分别是:

  • 标准输入(stdin)
  • 标准输出(stdout)
  • 标准错误(stderr)

在 Linux 系统中,系统保留了 0(标准输入)、1(标准输出)、2(标准错误) 三个文件描述符分别代表它们。

标准输入指的是从键盘这些标准输入设备读取到的数据。一般情况下标准输入重定向的很少用到,因此我们就不展开说。

标准输出则是通过屏幕输出的这些数据。我们可以通过标准输出重定向来让数据保存到文件里。例如:

YuRongChandeMacBook-Pro:chenshuyi yurongchan$ echo "hello shell, I'm shuyi" > out.txt
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ cat out.txt
hello shell, I'm shuyi

可以看到 echo 命令的输出并没有在屏幕上打印出来,而是保存在了 out.txt 文件中。

其实上面这种方式和echo "hello" 1> out.txt这条命令的结果是一样的。或许是因为标准输出重定向比较频繁,所以就把数字 1 省略了。

标准错误是指输出的错误信息。例如当我们运行一条错误的指令时,控制台会提示凑无信息,这些就是错误信息。如果我们要重定向错误信息到文件中,我们可以用2>这个操作符。例如:

YuRongChandeMacBook-Pro:chenshuyi yurongchan$ ls +
ls: +: No such file or directory
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ ls + 2> error.txt
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ cat error.txt
ls: +: No such file or directory

通过2>这个操作符,我们将标准错误重定向到了 error.txt 文件中了。

说到这里,输入输出重定向就说完了。其实这一章很简单,就是通过1>2>这两个操作符达到输出重定向的目的。

posted @   陈树义  阅读(501)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2018-11-01 2018 精选文章集合
2017-11-01 程序员的未来在哪里?
2014-11-01 Servlet的Listener介绍
点击右上角即可分享
微信分享提示