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 <<end

\>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

相关推荐
dxxt_yy6 分钟前
千兆光/电口+OTDR一体——成都鼎讯 SZT-1000A 千兆以太网测试仪助力风电能源光缆管理
运维·服务器·能源
凡人叶枫2 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
AI帮小忙2 小时前
Debian系linux操作系统里安装OpenClaw
linux·运维·debian
极创信息2 小时前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
志栋智能3 小时前
超自动化巡检剧本(Playbook):运维经验的数字化封装
运维·自动化
ElevenS_it1883 小时前
Nginx日志监控告警实战:access_log解析+5xx突增+慢请求+异常IP自动告警完整方案(Filebeat+Zabbix)
运维·网络·tcp/ip·nginx·zabbix
weixin_307779133 小时前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
tiancaijiben4 小时前
阿里云服务器部署WordPress全程指南(2026最新)
云计算
liulilittle4 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器
未若君雅裁4 小时前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins