码迷,mamicode.com
首页 > 系统相关 > 详细

Linux命令——tee

时间:2018-10-20 13:37:43      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:linu   cli   技术   spl   怎么   Beginner   grep   内容   alt   

转自:Linux tee Command Explained for Beginners (6 Examples)

8 Linux Tee Command with Examples

国内已有人翻译此文:为初学者介绍的 Linux tee 命令(6 个例子)

简介

有时候,你会想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。如果你想寻找这相关的工具,那么恭喜你,Linux 已经有了一个叫做 tee 的命令可以帮助你。tee命令读入标准输入,并写到标准输出和文件(一个或多个)。tee命令以管道中使用的T分配器(T-splitter)命名。 它基本上打破了程序的输出,因此它既可以显示也可以保存在文件中。 它同时执行两个任务,将结果复制到指定的文件或变量中,并显示结果。见下图

技术分享图片

语法

tee [OPTION]... [FILE]...

选项

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

典型用法

如何在 Linux 上使用这个命令

假设因为某些原因,你正在使用 ping 命令。

技术分享图片

然后同时,你想要输出的信息也同时能写入文件。这个时候,tee 命令就有其用武之地了。

ping google.com | tee output.txt

技术分享图片

可见,tee命令输出内容不仅被写入 output.txt 文件,也被显示在标准输出中。

如何确保 tee 命令追加信息到文件中?

默认情况下,在同一个文件下再次使用 tee 命令会覆盖之前的信息。如果你想的话,可以通过 -a 命令选项改变默认设置。

[command] | tee -a [file]

如何让 tee 写入多个文件?

非常简单,只需要多写明几个文件名就行了。

[command] | tee [file1] [file2] [file3]

技术分享图片

如何让 tee 命令的输出内容直接作为另一个命令的输入内容?

下面的命令不仅会将文件名存入 output.txt 文件中,还会通过 wc 命令让你知道输入到 output.txt 中的文件数目。

技术分享图片

如何查看日志文件并写入文件

我们可以通过tee命令分析通过apache2服务器的HTTP2流量。实时日志可以传输到标准输出,也可以写入文件以供日后进一步分析。

技术分享图片
sudo tail -f /var/log/apache2/access.log | grep --line-buffered "HTTP/2.0" | tee -a http2.log
View Code

如何使用 tee 命令提升文件写入权限?

假如你使用 Vim 编辑器 打开文件,并且做了很多更改,然后当你尝试保存修改时,你得到一个报错,让你意识到那是一个 root用户所拥有的文件,这意味着你需要使用 sudo 权限保存修改。

技术分享图片

如此情况下,你可以(在 Vim 内)使用 tee 命令来提高权限。

:w !sudo tee %

上述命令会向你索要 root 密码,然后就能让你保存修改了。

普通用户怎么创建root用户的文件?

技术分享图片
 sudo echo Documents | sudo tee -a folder_of_root.txt
View Code

上述命令会向你索要 root 密码,然后数据就写到了folder_of_root.txt。

如何让 tee 命令忽视中断?

-i 命令行选项使 tee 命令忽视通常由 ctrl+c 组合键发起的中断信号(SIGINT)。

 

Linux命令——tee

标签:linu   cli   技术   spl   怎么   Beginner   grep   内容   alt   

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9821302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!