迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Bash 中将 Stderr 和 Stdout 重定向到一个文件

作者:迹忆客 最近更新:2023/05/03 浏览次数:

本文将讨论 Linux 中的标准输出和标准错误。 我们将看到如何在 Bash 中重定向标准输出和标准错误。

让我们开始了解 Linux 中的标准输出和标准错误这两个术语。


Linux 中的标准输出和标准错误

在 Linux 中,命令从用户那里获取一些输入,可以是文件或任何属性。 当我们执行这些命令时,它们会给出我们输入的一些输出,称为标准输出。

此标准输出可能是成功或错误。 如果我们得到的输出是一个错误,我们称之为标准错误。

两者都将显示在我们的终端屏幕上。 有时,我们希望将标准输出和标准错误存储在文件中以用于测试或调试代码。

在 Linux 中,我们可以将这两个输出重定向到一个文件中,存储它的过程称为重定向。

在 Linux 中,对于每个进程,我们都有三个数据流,标准输入 (stdin)、标准输出 (stdout) 和标准错误 (stderr)。

标准输入 (stdin) 通过键盘从用户那里获取输入。 标准输出 (stdout) 在终端屏幕上显示输出。

标准错误 (stderr) 在屏幕上显示错误信息。 默认情况下,标准输出和标准错误都打印在终端屏幕上。

在 Linux 中,每个数据流都有一个唯一的数字 ID:

  • 对于标准输入 (stdin),数字 ID 为 0。
  • 对于标准输出 (stdout),数字 id 为 1。
  • 对于标准错误 (stderr),数字 ID 为 2。

让我们更详细地解释标准输出和标准错误的重定向。


在 Bash 中将标准输出重定向到一个文件

在 Linux 中,我们可以使用数字 ID 将标准输出重定向到一个文件。 要重定向任何命令的标准输出,我们使用 1 和符号 > 的重定向操作。

在我们的示例中,我们将使用 ls 命令。 我们将 ls 命令的输出重定向到一个文件。

然后我们将查看文本文件以查看存储在文件中的 ls 命令的输出。

示例代码:

$ ls 1> stdout.txt

要查看文件,我们使用以下命令:

$ cat stdout.txt

如上面的终端屏幕所示,我们在终端中使用了 ls 1> stdout.txt 命令。 此命令将 ls 命令的输出存储到名为 stdout.txt 的文件中。

我们在 Linux 中使用 ls 命令列出所有文件和目录。 所以我们将 ls 命令的输出重定向到一个文件中。

当我们使用 cat 命令查看文件时,我们可以看到文件中存储了 ls 命令的标准输出。 这就是我们如何使用它的数字 id 将任何命令的标准输出重定向到一个文件。


将标准错误重定向到 Bash 中的文件

我们还可以使用它的数字 id 将标准错误重定向到一个文件。 要将标准错误重定向到文件,我们将其数字 id 2 与重定向运算符 > 一起使用。

我们可以在终端中使用以下命令来做到这一点。

示例代码:

$ cat file.txt 2> stderr.txt

要查看名为 stderr.txt 的文件,我们使用以下命令:

$ cat stderr.txt

将 stderr 重定向到文件

正如我们所看到的,我们在终端中使用了 cat file.txt 2> stderr.txt 命令。 由于当前目录中没有名为 file.txt 的文件,因此 cat 命令将给出我们附加在 stderr.txt 文件中的错误。

当我们使用 cat 命令查看 stderr.txt 文件时,我们可以看到它显示了 No such file or directory 的错误。 这意味着我们已将 cat 命令的标准错误重定向到名为 stderr.txt 的文件中。

这就是我们如何将任何命令的标准错误重定向到一个文件中。


将标准输出和标准错误重定向到 Bash 中的文件

我们还可以使用单个命令将这两个输出重定向到一个文件中。 为此,我们使用以下命令。

示例代码:

$ ls 1> stdout.txt 2> stderr.txt

要查看 stdout.txt 文件,我们使用以下命令:

$ cat stdout.txt

要查看 stderr.txt 文件,我们使用以下命令:

$ cat stderr.txt

使用单个命令重定向 stdout 和 stderr

如我们所见,我们在单个命令中将标准输出和标准错误重定向到文件。 ls 命令的输出将存储在文件 stdout.txt 中,而 stderr.txt 填充将保持为空,因为不会出现错误。

这就是我们如何通过一个命令将标准输出和标准错误重定向到一个文件。

我们希望这篇 Linux 文章有助于您理解如何将任何命令的标准输出和标准错误重定向到 Bash 中的文件。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 CentOS 中获取 IP 地址

发布时间:2023/05/04 浏览次数:108 分类:操作系统

这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。

在 Linux 中更新 YUM

发布时间:2023/05/04 浏览次数:82 分类:操作系统

本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。

在 Linux 中安装 Deb 文件

发布时间:2023/05/04 浏览次数:130 分类:操作系统

本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。

Linux 中的 lsof 命令

发布时间:2023/05/04 浏览次数:82 分类:操作系统

在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。

Linux 中的 ps aux 命令

发布时间:2023/05/04 浏览次数:69 分类:操作系统

本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。

Linux 中的 NTP

发布时间:2023/05/04 浏览次数:137 分类:操作系统

本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。

在 Bash 中创建进度条

发布时间:2023/05/04 浏览次数:164 分类:操作系统

这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便