linux中stream什么意思

在linux中,stream是数据流的意思,就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序。Linux系统把数据读取后输出的结果导入到其他文件中的过程称为重定向数据流。Linux下输入一段命令并运行以后,屏幕里会显示两种结果:运行成功结果即标准输出、运行失败结果即标准错误输出;如果不做处理,它们都会显示在屏幕上,而通过数据流重定向就可将其储存到其他的文件中。

linux中stream什么意思

本教程操作环境:linux7.3系统、Dell G3电脑。

在linux中,stream是数据流的意思。

stream(数据流)是什么意思

stream(数据流)就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序。

数据流最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。这个概念最初在1998年由Henzinger在文献87中提出,他将数据流定义为“只能以事先规定好的顺序被读取一次的数据的一个序列”。

Linux系统重定向数据流就是把数据读取后输出的结果导入到其他文件中。

Linux数据流重定向

数据流重定向简单来说就是将某条命令的输入数据来源或输出数据定位到其他的文件。Linux下一切皆文件。这里的文件可以是设备文件、普通文件等。

1、stdin stdout stderr

stdin:标准输入。指的是为命令运行所提供的一些信息。
stdout:标准输出。指的是命令执行所返回的正确信息。
stderr:标准错误输出。指的是命令执行失败后所返回的错误信息。

这三者与命令的关系通常如下:

#mermaid-svg-43Q0mtxvjga7WpCa {font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .error-icon{fill:#552222;}#mermaid-svg-43Q0mtxvjga7WpCa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-43Q0mtxvjga7WpCa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa .marker.cross{stroke:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa svg{font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-43Q0mtxvjga7WpCa .label{font-family:”trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster-label text{fill:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster-label span{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .label text,#mermaid-svg-43Q0mtxvjga7WpCa span{fill:#333;color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .node rect,#mermaid-svg-43Q0mtxvjga7WpCa .node circle,#mermaid-svg-43Q0mtxvjga7WpCa .node ellipse,#mermaid-svg-43Q0mtxvjga7WpCa .node polygon,#mermaid-svg-43Q0mtxvjga7WpCa .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-43Q0mtxvjga7WpCa .node .label{text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .node.clickable{cursor:pointer;}#mermaid-svg-43Q0mtxvjga7WpCa .arrowheadPath{fill:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-43Q0mtxvjga7WpCa .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster text{fill:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster span{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-43Q0mtxvjga7WpCa :root{–mermaid-font-family:”trebuchet ms”,verdana,arial,sans-serif;}stdin        stderr        stdout        FileCommandScreen/FileScreen/File

在Linux环境下,我们输入一段命令并运行以后,屏幕里会显示两种结果:运行成功结果即标准输出、运行失败结果即标准错误输出。

标准输出(STDOUT): Standard output,指的是命令执行所返回的正确信息。

标准错误输出(STDERR): Standard error output,指的是命令执行所返回的错误信息。

如果不对STDOUT和STDERR做处理,他们都会显示在屏幕上,通过数据流重定向就可以将其储存到其他的文件中,而将其储存在文件中的特殊字符有:

标准输入stin:代码为0,使用<或<<

标准输出stout:代码为1,使用>或>>

阿里妈妈·创意中心 阿里妈妈·创意中心

阿里妈妈营销创意中心

阿里妈妈·创意中心 0 查看详情 阿里妈妈·创意中心

标准错误输出stderr:代码为2,使用2>或2>>

2、数据流重定向的使用

stdout:标准输出重定向。这里重定向的是正确输出。

find / -name '.bashrc' > ~/out_right

该命令将正确输出定向输入到文件~/out_right。如果~/out_right不存在,则自动创建。因为没对错误信息处理,错误输出默认输出到屏幕终端上,此时终端只会显示错误输出。

stderr:标准错误输出重定向。这里重定向的是错误输出。

find / -name '.bashrc' 2> ~/out_error

该命令将错误输出定向输入到文件~/out_error。如果~/out_error不存在,则自动创建。因为没对正确信息处理,正确输出默认输出到屏幕终端上,此时终端只会显示正确输出(如果没找到指定文件,屏幕没有输出)。

stdin:一般使用标准输入来替换键盘输入。

cat > catfile < ~/.bashrc

cat命令后不接任何参数,cat会从键盘读取数据。使用标准输入,将输入来源定向到文件~/.bashrc。然后通过>将标准输出定位到catfile文件。cat是查看文件的命令,这里直接读取文件~/.bashrc然后将其输出到catfile。

3、>>,2>>,<<

>>(累加):附加标准输出。cmd > file1,命令cmd将stdout输出到file1中,如果fiel1此前存在,且有数据,那么file1会事先被清空,然后写入stdout。而使用命令cmd >> file1,不会预先清空file1文件,而是直接在文件末尾加上输入的数据。2>>(累加):附加标准错误输出。与>>相似。<<(指定结束关键字):后接结束的输入字符。关键字必须独占一行,否则无效。

cat > catfile < This is a test.> Ok now stop> eof  #输入eof(并回车)结束本次输入

4、 stdout与stderr统一处理

有时,我们需要将stdout与stderr都保存在同一个文件中一遍以后查看。

基本思路:

将stderr重定向为stdout,然后通过stdout一起重定向。

如下案例:

find / -name .bashrc > list 2> list #该语句错误,查看生成的list,发现不是预期结果find / -name .bashrc > list 2>&1 #正确find / -name .bashrc &> list #正确

实现方法不止一种,我们取较好理解的写法find / -name .bashrc > list 2>&1。这段代码中的2>&1可以理解为,将标准错误输出(代码为2)重定向为标准输出(代码为1)。然后> list将标准输出重定向到文件list。因为标准错误输出被定向为标准输出,所以最后所有输出都被定向到文件list中。

相关推荐:《Linux视频教程》

以上就是linux中stream什么意思的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/249922.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
光遇3.10疑惑先祖兑换图
上一篇 2025年11月4日 05:00:44
万润新能:美国项目土地和厂房已完成交割,正按计划推进报批报建
下一篇 2025年11月4日 05:00:48

相关推荐

  • 如何在SublimeText中配置C++开发环境?快速搭建C++项目的教程

    如何在SublimeText中配置C++开发环境?快速搭建C++项目的教程如何在SublimeText中配置C++开发环境?快速搭建C++项目的教程如何在SublimeText中配置C++开发环境?快速搭建C++项目的教程如何在SublimeText中配置C++开发环境?快速搭建C++项目的教程

    答案是配置Sublime Text的C++开发环境需安装编译器并设置构建系统。首先安装MinGW-w64并配置PATH,验证g++可用;接着在Sublime中创建C++.sublime-build文件,定义编译和运行命令;推荐添加Run (Console)变体以支持交互输入;然后通过Package …

    2026年9月29日 • 用户投稿
    100
  • 如何诊断硬件中断冲突导致的系统卡顿?

    如何诊断硬件中断冲突导致的系统卡顿?如何诊断硬件中断冲突导致的系统卡顿?如何诊断硬件中断冲突导致的系统卡顿?如何诊断硬件中断冲突导致的系统卡顿?

    硬件中断冲突导致系统卡顿,需通过事件查看器或dmesg排查错误日志,确认后采用禁用设备、更新驱动、调整BIOS或PCI插槽等方法解决,重点检查声卡等常见冲突设备。 卡拉OK视频制作 卡拉OK视频制作,在几分钟内制作出你的卡拉OK视频 178 查看详情 硬件中断冲突导致的系统卡顿,简单来说,就是不同的…

    2026年9月29日 • 用户投稿
    000
  • linux网站服务器安全加固设置方案

    对于我们运维人员来说,linux系统就像我们的女神一般重要。今天我来到公司,看到一位运维小哥竟然将一朵玫瑰花插在服务器上,吓了我一跳,他还在一旁低声念叨着什么,我没听太清楚。其实,对于运维来说,linux系统就是我们的女神,所以今天的标题应该改为“如何让你的linux女神更安全”。对于linux系统…

    2026年9月29日
    300
  • 如何在SublimeText中运行Dart代码?快速设置Dart环境的完整教程

    如何在SublimeText中运行Dart代码?快速设置Dart环境的完整教程如何在SublimeText中运行Dart代码?快速设置Dart环境的完整教程如何在SublimeText中运行Dart代码?快速设置Dart环境的完整教程如何在SublimeText中运行Dart代码?快速设置Dart环境的完整教程

    答案:安装Dart SDK并配置环境变量,通过Package Control安装Dart插件,设置自定义构建系统实现运行与编译。首先从官网下载Dart SDK并将其bin目录加入PATH,验证dart –version和dart pub –version;接着在Sublime…

    2026年9月29日 • 用户投稿
    100
  • 为什么SublimeText无法运行Fortran程序?解决Fortran环境的设置方法

    为什么SublimeText无法运行Fortran程序?解决Fortran环境的设置方法为什么SublimeText无法运行Fortran程序?解决Fortran环境的设置方法为什么SublimeText无法运行Fortran程序?解决Fortran环境的设置方法为什么SublimeText无法运行Fortran程序?解决Fortran环境的设置方法

    答案是配置Sublime Text运行Fortran需安装gfortran并创建自定义构建系统。首先在Windows、macOS或Linux上安装gfortran,确保其加入环境变量,然后在Sublime Text中新建Fortran.sublime-build文件,配置编译和运行命令,保存后选择该…

    2026年9月29日 • 用户投稿
    100
  • SublimeText运行Erlang代码出错怎么办?配置Erlang环境的实用方法

    SublimeText运行Erlang代码出错怎么办?配置Erlang环境的实用方法SublimeText运行Erlang代码出错怎么办?配置Erlang环境的实用方法SublimeText运行Erlang代码出错怎么办?配置Erlang环境的实用方法SublimeText运行Erlang代码出错怎么办?配置Erlang环境的实用方法

    首先确认Erlang环境变量配置正确,确保系统能识别erl命令;然后在Sublime Text中创建自定义构建系统,配置包含”shell”: true的JSON,正确调用erlc编译和erl运行命令,保存为Erlang.sublime-build;最后在Erlang文件中使用…

    2026年9月29日 • 用户投稿
    000
  • 电脑Mac地址查询方法大全(从查找到修改)

    电脑Mac地址查询方法大全(从查找到修改)电脑Mac地址查询方法大全(从查找到修改)电脑Mac地址查询方法大全(从查找到修改)电脑Mac地址查询方法大全(从查找到修改)

    在计算机网络中,每台设备都有一个唯一的标识符,被称为mac地址。了解如何查询和修改mac地址对于网络管理和安全至关重要。本文将介绍mac地址的基本概念,并详细讲解了多种电脑mac地址查询方法,帮助读者更好地掌握相关技术。 一、什么是Mac地址 Mac地址:设备的独一无二身份标识如何识别网络设备与众不…

    2026年9月29日 • 用户投稿
    100
  • 保护数据隐私:深入探讨Linux平台上的EncryptPad应用

    保护数据隐私:深入探讨Linux平台上的EncryptPad应用保护数据隐私:深入探讨Linux平台上的EncryptPad应用保护数据隐私:深入探讨Linux平台上的EncryptPad应用保护数据隐私:深入探讨Linux平台上的EncryptPad应用

    加密保护数据隐私:探索EncryptPad在Linux上的应用 在当今信息时代,数据安全和隐私保护变得愈发重要。随着大量敏感数据存储在电子设备中,如何有效地加密保护这些数据成为了许多人关注的焦点。在Linux系统中,EncryptPad是一个功能强大且易于使用的加密工具,可以帮助用户轻松加密他们的文…

    2026年9月29日 • 用户投稿
    000
  • SublimeText运行Rust代码失败怎么办?教你正确设置Rust编译器

    SublimeText运行Rust代码失败怎么办?教你正确设置Rust编译器SublimeText运行Rust代码失败怎么办?教你正确设置Rust编译器SublimeText运行Rust代码失败怎么办?教你正确设置Rust编译器SublimeText运行Rust代码失败怎么办?教你正确设置Rust编译器

    Sublime Text运行Rust代码失败的核心原因是环境变量或构建系统配置不当。首先需确认终端中rustc和cargo命令可正常执行,确保Rust工具链正确安装并加入PATH。若终端正常而Sublime Text无法运行,通常因其GUI启动时未继承完整环境变量,尤其在macOS/Linux系统中…

    2026年9月29日 • 用户投稿
    100
  • 揭示EncryptPad:保护Linux系统中数据的加密工具

    揭示EncryptPad:保护Linux系统中数据的加密工具揭示EncryptPad:保护Linux系统中数据的加密工具揭示EncryptPad:保护Linux系统中数据的加密工具揭示EncryptPad:保护Linux系统中数据的加密工具

    标题:发现EncryptPad:Linux系统中的数据加密利器 在网络信息安全日益受到重视的今天,数据加密成为了保护个人和机构重要信息安全的重要手段之一。在Linux系统中,EncryptPad作为一款强大的数据加密工具,为用户提供了安全的加密存储解决方案。本文将介绍EncryptPad的基本特点、…

    2026年9月29日 • 用户投稿
    200
  • Sublime如何查看程序运行时间_在构建系统中添加计时功能

    Sublime如何查看程序运行时间_在构建系统中添加计时功能Sublime如何查看程序运行时间_在构建系统中添加计时功能Sublime如何查看程序运行时间_在构建系统中添加计时功能Sublime如何查看程序运行时间_在构建系统中添加计时功能

    使用Shell脚本或插件在Sublime Text中添加计时功能可测量代码运行时间:一、Linux/macOS在构建配置中用”cmd”: [“time”, “python”, “$file”],Windo…

    2026年9月29日 • 用户投稿
    000
  • SublimeText怎么设置免打扰模式_DistractionFreeMode配置方法

    SublimeText怎么设置免打扰模式_DistractionFreeMode配置方法SublimeText怎么设置免打扰模式_DistractionFreeMode配置方法SublimeText怎么设置免打扰模式_DistractionFreeMode配置方法SublimeText怎么设置免打扰模式_DistractionFreeMode配置方法

    免打扰模式通过隐藏界面元素实现专注编码,可使用F11(Windows/Linux)或⌃⇧F(macOS)快捷键进入,配合命令面板(Ctrl+Shift+P)和快速文件切换(Ctrl+P)高效导航,支持通过Distraction Free.sublime-settings个性化配置行号、状态栏、字体等…

    2026年9月29日 • 用户投稿
    000
  • php怎么安装_在虚拟机中搭建PHP开发环境的教程

    在虚拟机中搭建PHP开发环境,本质是通过LAMP/LEMP栈实现隔离、可控的开发沙盒。答案是:选择Ubuntu Server 22.04等Linux系统,在VirtualBox或VMware中创建虚拟机,分配足够资源并安装OpenSSH;随后更新系统,依次安装Apache(或Nginx)、Maria…

    2026年9月29日
    000
  • 不同类型的Linux日志文件及设置步骤

    不同类型的Linux日志文件及设置步骤不同类型的Linux日志文件及设置步骤不同类型的Linux日志文件及设置步骤不同类型的Linux日志文件及设置步骤

    Linux日志文件种类及配置方法 在Linux系统中,日志文件是非常重要的,它记录了系统的运行状态、用户的操作以及各种事件的发生情况。通过查看日志文件,系统管理员可以及时发现问题并进行相应的处理。本文将介绍Linux系统中常见的日志文件种类及如何配置日志记录。 一、日志文件种类 系统日志:系统日志是…

    2026年9月29日 • 用户投稿
    100
  • Linux系统如何安装Sublime_Ubuntu安装SublimeText教程

    Linux系统如何安装Sublime_Ubuntu安装SublimeText教程Linux系统如何安装Sublime_Ubuntu安装SublimeText教程Linux系统如何安装Sublime_Ubuntu安装SublimeText教程Linux系统如何安装Sublime_Ubuntu安装SublimeText教程

    一、添加官方GPG密钥并配置APT仓库,更新后安装;二、使用Snap命令直接安装;三、下载.deb包手动安装并修复依赖。 如果您尝试在Ubuntu系统上安装Sublime Text,但无法通过默认软件中心找到该编辑器,则可能是由于软件源未正确配置。以下是完成安装的多种方法: 一、通过官方APT仓库安…

    2026年9月29日 • 用户投稿
    100
  • 研究Linux日志文件中各字段的内容

    研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容

    Linux作为一种广泛使用的操作系统,具有强大的日志系统来记录系统运行中的重要信息。日志文件通常存储在/var/log目录下,其中包含了各种不同类型的日志文件,如系统日志、安全日志等。本文将深入探讨Linux日志文件中的各列内容,并结合具体的代码示例来解释各列的含义。 1. syslog日志文件 s…

    2026年9月29日 • 用户投稿
    100
  • Linux如何后台运行进程 nohup和&用法解析

    Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析

    1.&amp;amp;amp;amp;amp;amp;用于将进程放到当前终端的后台运行,但关闭终端时进程会被终止;2.nohup可防止进程因终端关闭被挂断,结合&amp;amp;amp;amp;amp;amp;使用能实现后台持续运行。两者区别在于&amp;amp;amp;am…

    2026年9月29日 • 用户投稿
    300
  • Linux CPU系统资源占用过高问题解析

    Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析

    Linux CPU系统资源占用过高问题解析 在日常使用Linux系统的过程中,我们可能会遇到CPU资源占用过高的问题,这会导致系统响应变慢甚至影响系统的正常运行。本文将深入分析Linux系统中CPU资源占用过高的原因及解决方法,并给出具体的代码示例。 一、原因分析 进程占用CPU过高:有些进程占用C…

    2026年9月29日 • 用户投稿
    000
  • 怎样为公司批量安装Sublime_Sublime企业部署安装指南

    怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南

    首先准备标准化安装包和配置文件,再通过组策略或脚本批量部署,随后配置中央许可,最后验证安装与设置一致性。 如果您需要为公司内的多台计算机安装Sublime Text编辑器,以实现统一开发环境配置,则可以通过自动化脚本和集中化配置管理来完成批量部署。以下是实现企业级批量安装的具体步骤: 一、准备安装包…

    2026年9月29日 • 用户投稿
    400
  • 理解Linux DTS的作用及用法

    理解Linux DTS的作用及用法理解Linux DTS的作用及用法理解Linux DTS的作用及用法理解Linux DTS的作用及用法

    理解Linux DTS的作用及用法 在嵌入式Linux系统开发中,设备树(Device Tree,简称DTS)是一种描述硬件设备及其在系统中的连接关系和属性的数据结构。设备树使得Linux内核能够在不同的硬件平台上灵活地运行,而无需对内核进行修改。在本文中,将介绍Linux DTS的作用及用法,并提…

    2026年9月29日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信