共计 2275 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章主要介绍“linux 中 stream 的含义是什么”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux 中 stream 的含义是什么”文章能帮助大家解决问题。
在 linux 中,stream 是数据流的意思,就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序。Linux 系统把数据读取后输出的结果导入到其他文件中的过程称为重定向数据流。Linux 下输入一段命令并运行以后,屏幕里会显示两种结果:运行成功结果即标准输出、运行失败结果即标准错误输出;如果不做处理,它们都会显示在屏幕上,而通过数据流重定向就可将其储存到其他的文件中。
在 linux 中,stream 是数据流的意思。
stream(数据流)是什么意思
stream(数据流)就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序。
数据流最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。这个概念最初在 1998 年由 Henzinger 在文献 87 中提出,他将数据流定义为“只能以事先规定好的顺序被读取一次的数据的一个序列”。
Linux 系统重定向数据流就是把数据读取后输出的结果导入到其他文件中。
Linux 数据流重定向
数据流重定向简单来说就是将某条命令的输入数据来源或输出数据定位到其他的文件。Linux 下一切皆文件。这里的文件可以是设备文件、普通文件等。
1、stdin stdout stderr
stdin: 标准输入。指的是为命令运行所提供的一些信息。
stdout: 标准输出。指的是命令执行所返回的正确信息。
stderr: 标准错误输出。指的是命令执行失败后所返回的错误信息。
这三者与命令的关系通常如下:
stdin
stderr
stdout
File
Command
Screen/File
Screen/File
在 Linux 环境下,我们输入一段命令并运行以后,屏幕里会显示两种结果:运行成功结果即标准输出、运行失败结果即标准错误输出。
标准输出(STDOUT):Standard output,指的是命令执行所返回的正确信息。
标准错误输出(STDERR):Standard error output,指的是命令执行所返回的错误信息。
如果不对 STDOUT 和 STDERR 做处理,他们都会显示在屏幕上,通过数据流重定向就可以将其储存到其他的文件中,而将其储存在文件中的特殊字符有:
标准输入 stin:代码为 0,使用 或
标准输出 stout:代码为 1,使用 或
标准错误输出 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 eof # 这里关键字为 eof
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 中 stream 的含义是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。