当前位置: 首页 > news >正文

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 ~]# date 1> date.txt
[root@localhost ~]# date > date.txt
(2) 追加输出
[root@localhost ~]# date >> date.txt
(3) 错误输出重定向

ls命令标准输出写入 list.txt,错误输出写入 error.txt

[root@localhost ~]# ls /home/ / aaa > list.txt  2 > error.txt
(4) 正确和错误输出到相同位置(混合输出)
ls 命令正确和错误输出都写入 list.txt.

[root@localhost]# ls /home / / aaa &> list.txt
[root@localhost]# ls /home/ /aaa > list.txt 2>&1


(5) 重定向到空设备
ls命令错误输出(或全部输出)丢弃

[root@localhost]# ls /home / /aaa > list.txt 2>/dev/null
[root@localhost]# ls /home / / aaa &> /dev/null

6. 输入重定向案例

标准输入定向:< 0 <<< < 0

(1)从文件读取数据

test 写入 file.
[root@localhost ~]# echo test >file

(2) 使用结束标识符
[root@localhost]# cat >file3 <<end

\>hello
\>end

二.tee 命令读取数据输出到文件

1.管道符(|):连接两个或多个命令,将左边命令输出作为右边命令输入。

2.tee 命令

① 功能:读取标准数据,同时输出到文件和屏幕。
② 语法:tee [-ai] [--help] [--version][文件...]
③ 参数

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

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

☛--help:在线帮助

④使用案例

☛tee file

[root@localhost]# tee file
[root@localhost]# cat /etc/group | tee /root/file

☛追加信息:tee -a [file]

☛写入多文件:tee file1 file2 file3

http://www.dtcms.com/a/123081.html

相关文章:

  • 【非机动车检测】用YOLOv8实现非机动车及驾驶人佩戴安全帽检测
  • MySQL 的四种社交障碍等级
  • 经济金融最优化:从理论到MATLAB实践——最大利润问题全解析
  • 程序设计竞赛1
  • java笔记03
  • 安装了VM Tools,仍无法复制拖动-解决方案
  • 如何通过前端表格控件实现自动化报表?1
  • wsl2+ubuntu22.04安装blenderproc教程
  • React 的 context 是什么?
  • GPT - 因果掩码(Causal Mask)
  • C语言复习笔记--指针(4)
  • lombok的坑
  • JVM 调试与内存优化实战详解
  • 可编辑37页PPT | 建筑行业DeepSeek日常实操培训
  • keil5使用技巧
  • 踩雷,前端一直卡在获取token中
  • GaussDB存储过程深度解析:从开发到生产实践
  • 4.9-4.10学习总结 Stream流练习+方法引用+异常
  • C/C++内存管理:从基础到进阶
  • Leetcode 69——不使用sqrt函数情况下求平方根整数部分(暴力求解法和二分查找法)
  • Pytest多环境切换实战:测试框架配置的最佳实践!
  • EPGAN:融合高效注意力的生成对抗网络图像修复算法
  • Promise(微任务)和setTimeout(宏任务)的理解
  • P1825 [USACO11OPEN] Corn Maze S【java】【AC代码】
  • C++:函数模板类模板
  • 什么是巨型帧Jumbo Frames?云服务器开启巨型帧有什么用?
  • 2025年4月9日-华为暑期实习-第二题-200分
  • 动态类生成 / 加载机制(更新)
  • Java集合框架:核心接口与关系全解析
  • springboot中测试python脚本:ProcessBuilder