RHCSA Linux系统 数据流和重定向 tee 命令

一.数据流和重定向

1. 数据流

(1) 标准输入(stdin,代码 0): 默认从键盘获取输入,只读。
(2) 标准输出(stdout,代码 1): 命令执行正确信息默认输出到屏幕,只写。
(3) 标准错误输出(stderr,代码 2): 命令执行错误信息默认输出到屏幕,只写。
**(4) 其他文件(3+):**可读写,无默认连接。

由于默认都输出到屏幕会导致混乱,需要用数据流重定向分开。

2. 重定向操作符

(1) 输出重定向操作符: >(覆盖)、>>(追加)
(2) 输入重定向操作符:< 、<<

3. 输出重定向

(1) 覆盖写入标准输出
① 形式:命令 > 文件 或 命令 1 > 文件
② 功能:把命令标准输出信息,以覆盖方式写入指定文件,文件不存在则创建
(2) 覆盖写入错误输出
① 形式:命令 2> 文件
② 功能:将命令错误信息,以覆盖方式写入指定文件,文件不存在则创建

(3) 丢弃错误输出

① 形式:命令 2> /dev/null
② 功能:把命令错误信息,写入空设备文件,即丢弃错误信息。

(4) 混合覆盖输出

① 形式:命令 &> 文件 或命令 >& 文件
② 功能:将命令正确和错误输出,以覆盖方式写入指定文件,文件不存在则创建。

(5) 追加正确输出

① 形式:命令 >> 文件
② 功能:把命令正确输出以追加方式写入指定文件,不覆盖原内容,文件不存在则创建

4. 输入重定向

(1) 从文件读取输入
① 形式:命令 < 文件
② 功能:让命令从指定文件读取数据作为输入
(2) 按标识结束输入
① 形式:命令 << 结束标识 定符串
② 功能:在命令行读取数据作输入,遇到指定结束标识字符串时停止。

5. 输出重定向案例

☛标准输出重定向:1 > 或 >,1>> 或 >>

☛标准错误输出重定向:2>,2>>
(1) 覆盖输出

root@[localhost](https://localhost/ "localhost") \~\]# date 1\> date.txt \[root@[localhost](https://localhost/ "localhost") \~\]# date \> date.txt **(2) 追加输出** \[root@[localhost](https://localhost/ "localhost") \~\]# date \>\> date.txt **(3) 错误输出重定向** ls命令标准输出写入 list.txt,错误输出写入 error.txt。 \[root@[localhost](https://localhost/ "localhost") \~\]# ls /home/ / aaa \> list.txt 2 \> error.txt **(4) 正确和错误输出到相同位置(混合输出)** ls 命令正确和错误输出都写入 list.txt. \[root@[localhost](https://localhost/ "localhost")\]# ls /home / / aaa \&\> list.txt \[root@[localhost](https://localhost/ "localhost")\]# ls /home/ /aaa \> list.txt 2\>\&1 **(5) 重定向到空设备** 将ls命令错误输出(或全部输出)丢弃 \[root@[localhost](https://localhost/ "localhost")\]# ls /home / /aaa \> list.txt 2\>/dev/null \[root@[localhost](https://localhost/ "localhost")\]# ls /home / / aaa \&\> /dev/null ### **6.** **输入重定向案例** **☛** **标准输入定向:** **\<** **或** **0 \<** **;** **\<\<** **或** **\< 0** **(1)从文件读取数据** 将 test 写入 file. \[root@[localhost](https://localhost/ "localhost") \~\]# echo test \>file **(2) 使用结束标识符** \[root@[localhost](https://localhost/ "localhost")\]# cat \>file3 \<\hello \\>end ## **二.tee** **命令读取数据输出到文件** ### 1.管道符(\|):连接两个或多个命令,将左边命令输出作为右边命令输入。 ### 2.tee 命令 ① 功能:读取标准数据,同时输出到文件和屏幕。 ② 语法:tee \[-ai\] \[--help\] \[--version\]\[文件...

③ 参数

☛-a /--append:追加到现有文件,不覆盖

☛-i /--ignore -interrupts:忽略中断信号

☛--help:在线帮助

④使用案例

☛tee file

root@[localhost](https://localhost/ "localhost")\]# tee file \[root@[localhost](https://localhost/ "localhost")\]# cat /etc/group \| tee /root/file ☛追加信息:tee -a \[file

☛写入多文件:tee file1 file2 file3

相关推荐
π大星星️24 分钟前
Jenkins 工作流程
运维·jenkins
Juicedata1 小时前
JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
运维·人工智能·ai
IT成长日记1 小时前
05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作
linux·运维·服务器·用户管理·命令
资讯第一线5 小时前
Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
运维
惊起白鸽4506 小时前
LVS负载均衡
运维·负载均衡·lvs
Sapphire~7 小时前
Linux-07 ubuntu 的 chrome 启动不了
linux·chrome·ubuntu
伤不起bb7 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型8 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
love530love8 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
啵啵学习8 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式