Linux命令-按照与使用(12) 可以把输出重定向到文件中(tee)

news/2024/10/17 10:28:55/

tee命令介绍

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

tee是一个简单的命令,可以将命令的标准输命出保存为文件并同时进行显示。在想要保存并同时查看性能工具输出的时候,tee是很有帮助的。比如,正在监控一个实时系统的性能统计信息的同时,保存这些数据以备将来对它们进行分析。

用途说明

在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,

这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。

tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,tee命令可以重定向标准输出到多个文件。

注意:在使用管道线时,前一个命令的标准错误输出不会被tee读取。

语法

tee [-ai][--help][--version][文件...]
tee获取由<command>提供的输出,在将其保存到指定文件的同时也显示到标准输出设备。如果特别指定了-a选项,则tee会将输出添加到文件上,而不是覆盖文件。

参数:

-a或--append  附加到既有文件的后面,而非覆盖它.
-i或--ignore-interrupts  忽略中断信号。
--help  在线帮助。
--version  显示版本信息。

常用参数

格式:tee
只输出到标准输出,因为没有指定文件嘛。

格式:tee file
输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。(If a file being written to does not already exist, it is created. If a file being written to already exists, the data it previously
contained is overwritten unless the `-a' option is used.)

格式:tee -a file
输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。

格式:tee -
输出到标准输出两次。(A FILE of -' causes tee' to send another copy of input to standard output, but this is typically not that useful as the copies are interleaved.)

格式:tee file1 file2 -
输出到标准输出两次,同时保存到file1和file2中。

用法示例:

示例1、用tee来记录vmstat的输出

用tee来记录vmstat的输出。如你所见,tee 显示了vmstat生成的输出,并同时将其保在到文件 /tmp/vmstat_out保存vmstat的输出能让我们在将来的时间里对性能数据进行分析或绘图。

[isunland@localhost ~]$ vmstat 1 5 | tee /tmp/vmstat_out
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0      0 14353024   5180 531136    0    0     8     1   13   19  0  0 100  0  00  0      0 14353032   5180 531136    0    0     0     0  163  202  0  0 100  0  00  0      0 14353032   5180 531140    0    0     0     0   84  150  0  0 100  0  00  0      0 14353032   5180 531140    0    0     0     0   97  172  0  0 100  0  00  0      0 14353032   5180 531140    0    0     0     0  111  188  0  0 100  0  0

tee命令很简单,但由于它能轻松地记录指令性能工具的输出,因此它的能力也很非常强大的。

示例2、tee命令与重定向的对比

[root@web ~]# seq 2 >1.txt 
[root@web ~]# cat 1.txt 
1
2
[root@web ~]# cat 1.txt >2.txt 
[root@web ~]# cat 1.txt | tee 3.txt 
1
2
[root@web ~]# cat 2.txt 
1
2
[root@web ~]# cat 3.txt 
1
2
[root@web ~]# cat 1.txt >>2.txt 
[root@web ~]# cat 1.txt | tee -a 3.txt 
1
2
[root@web ~]# cat 2.txt 
1
2
1
2
[root@web ~]# cat 3.txt 
1
2
1
2

示例3、使用tee命令重复输出字符串

[root@web ~]# echo 12345 | tee 
12345[root@web ~]# echo 12345 | tee - 
12345
12345
[root@web ~]# echo 12345 | tee - - 
12345
12345
12345
[root@web ~]# echo 12345 | tee - - - 
12345
12345
12345
12345
[root@web ~]# echo 12345 | tee - - - - 
12345
12345
12345
12345
12345

示例4、使用tee命令把标准错误输出也保存到文件(2>&1)

[root@web ~]# ls "*" 
ls: *: 没有那个文件或目录
[root@web ~]# ls "*" | tee - 
ls: *: 没有那个文件或目录
[root@web ~]# ls "*" | tee ls.txt 
ls: *: 没有那个文件或目录
[root@web ~]# cat ls.txt 
# 要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。
# -------------------------
# 2>&1 把标准错误输出转成标准输出
[root@web ~]# ls "*" 2>&1 | tee ls.txt 
ls: *: 没有那个文件或目录
[root@web ~]# cat ls.txt 
ls: *: 没有那个文件或目录
[root@web ~]#

http://www.ppmy.cn/news/478975.html

相关文章

网站在线监控工具Statping

本文完成于 8 月&#xff0c;特别需要说明的是&#xff0c;Statping 已经有 2年没更新了&#xff0c;介意的话看看就好了。 什么是 Statping &#xff1f; Statping 是一个易于使用的状态页面&#xff0c;能自动获取应用程序的信息&#xff0c;并呈现具有大量功能的漂亮状态页面…

ZCMU--5180: gsy 的考试成绩(C语言)

Description 众所周知&#xff0c;学校里有三种人 天天考满分的是学霸&#xff0c;天天考不及格的是学渣&#xff0c;还有一类比学霸更厉害的人——控分大佬 考试考满分不是最厉害的&#xff0c;最厉害的是想考几分考几分 而 gsy 作为一个学霸&#xff0c;希望自己再进一步…

万兆防火墙Hillstone SA-5180助力西安交通大学万兆网络完美建设

Hillstone SA-5180助力西安交通大学万兆网络完美建设 &#xff08;北京&#xff0c;2008年12月26日&#xff09;网络安全解决方案供应商Hillstone&#xff08;山石网科&#xff09;公司今天宣布&#xff0c;万兆级安全网关Hillstone SA-5180凭借其良好的表现全面中标西安交通大…

PN5180射频识别芯片学习笔记

PN5180芯片基础介绍 PN5180&#xff0c;市场上最好的全NFC前端。作为一个高度集成的高性能全NFC论坛兼容前端IC&#xff0c;用于13.56 MHz的非接触式通信&#xff0c;该前端IC采用了出色的调制和解调概念&#xff0c;完全集成了不同类型的非接触式通信方法和协议。PN5180可确保…

广工击败清华,CGTN Sports 是这样说的

6 月 18 日晚上&#xff0c;被很多人不看好的弱旅广东工业大学&#xff0c;击败了豪门清华大学&#xff0c;拿下 CUBAL 的总冠军。 CGTN Sports Scene 是这样报道的&#xff1a; &#x1f3c6; 1st ever CUBAL championship in school history 校史上第一个 CUBAL 冠军 CUBA…

如何用slf4j打印日志既使用占位符又打印异常堆栈信息(仍然使用{}占位符,不拼接,不使用String.format)

背景 之前有过一个疑惑&#xff0c;就是使用slf4j的API去打印错误日志的时候&#xff0c;如果既要打印参数又要打印异常的堆栈信息&#xff0c;则前面的部分只能用字符串拼接的方式&#xff0c;如 log.error("error msg,request param1:" param1 "param2:&q…

MySQL优化--覆盖索引,超大分页查询

目录 覆盖索引 MYSQL超大分页处理 面试回答 大纲 回答 覆盖索引 覆盖索引是指查询使用了索引&#xff0c;并且需要返回的列&#xff0c;在该索引中已经全部能够找到 。 MYSQL超大分页处理 在数据量比较大时&#xff0c;如果进行limit分页查询&#xff0c;在查询时&#…

亚马逊云科技中国峰会:Amazon DeepRacer——载着 AI 梦想向前奔跑

目录 一、Amazon DeepRacer 是什么&#xff1f; 二、Amazon DeepRacer 的前世今生 三、Amazon DeepRacer 深度体验 四、2023亚马逊云科技中国峰会 1.中国峰会总决赛 2.自动驾驶赛车名校邀请赛 3.Girls in Tech Show 4.全球联赛 5.报名链接&#xff1a; 一、Amazon Dee…