首页 > 系统相关 > Linux命令-按照与使用(13)为初学者介绍的 Linux tee 命令(6 个例子)

Linux命令-按照与使用(13)为初学者介绍的 Linux tee 命令(6 个例子)

时间:2022-09-02 16:01:53浏览次数:80  
标签:文件 13 输出 tee 命令 Linux txt

转载地址:
为初学者介绍的 Linux tee 命令(6 个例子)

有时候,你会想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。如果你想寻找这相关的工具,那么恭喜你,Linux 已经有了一个叫做 tee 的命令可以帮助你。

本教程中,我们将基于 tee 命令,用一些简单的例子开始讨论。但是在此之前,值得一提的是,本文我们所有的测试实例都基于 Ubuntu 16.04 LTS。

Linux tee 命令

tee 命令基于标准输入读取数据,标准输出或文件写入数据。感受下这个命令的语法:

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

这里是帮助文档的说明:

从标准输入中复制到每一个文件,并输出到标准输出。

让 Q&A(问&答)风格的实例给我们带来更多灵感,深入了解这个命令。

Q1、 如何在 Linux 上使用这个命令?

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

ping google.com

如何在 Linux 上使用 tee 命令

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

ping google.com | tee output.txt

下面的截图展示了这个输出内容不仅被写入 output.txt 文件,也被显示在标准输出中。

tee command 输出

如此应当明白了 tee 的基础用法。

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

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

[command] | tee -a [file]

基本上,-a 选项强制 tee 命令追加信息到文件。

Q3、 如何让 tee 写入多个文件?

这非常之简单。你仅仅只需要写明文件名即可。

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

比如:

ping google.com | tee output1.txt output2.txt output3.txt

如何让 tee 写入多个文件

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

使用 tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 output.txt 文件中,还会通过 wc 命令让你知道输入到 output.txt 中的文件数目。

ls file* | tee output.txt | wc -l

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

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

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

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

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

:w !sudo tee %

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

Q6. 如何让 tee 命令忽视中断?

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

[command] | tee -i [file]

当你想要使用 ctrl+c 中断该命令,同时让 tee 命令优雅的退出,这个选项尤为实用。

总结

现在你可能已经认同 tee 是一个非常实用的命令。基于 tee 命令的用法,我们已经介绍了其绝大多数的命令行选项。这个工具并没有什么陡峭的学习曲线,所以,只需跟随这几个例子练习,你就可以运用自如了。更多信息,请查看 帮助文档.


标签:文件,13,输出,tee,命令,Linux,txt
From: https://www.cnblogs.com/muzlei/p/16650222.html

相关文章

  • 举例说明 alias 和 unalias 命令
    如果不是一个命令行重度用户的话,过了一段时间之后,你就可能已经忘记了这些复杂且冗长的Linux命令了。当然,有很多方法可以让你回想起遗忘的命令。你可以简单的保存常用的......
  • Linux Rootkit技术
    一、介绍 Rootkit这一概念最早出现于上个世纪九十年代初期,CERTCoordinationCenter(CERT/CC)于1994年在CA-1994-01这篇安全咨询报告中使用了Rootkit这个词汇。在这之后R......
  • Redis服务端命令请求处理
    命令处理流程1.Redis单线程单进程通过IO复用从文件事件中选出已经就绪的命令放入输入缓存区querybuffer2.一个个取出querybuffer里的命令进行解析,解析argv和argc3.通过a......
  • Educational Codeforces Round 134 (Rated for Div. 2) D Maximum AND
    MaximumAND贪心从高位开始,尽可能地让\(a\)中该位为\(0\)的和\(b\)中该位为\(1\)的配对在一起,换句话说,可以让\(a\)由小到大排序,\(b\)由大到小排序如果当......
  • linux命令集【3】
    第三部分rpm命令的使用:1.安装指定的rpm文件:rpm-i包名2.对软件进行升级:rpm-U包名3.删除/卸载指定的软件包:rpm-e包名4.查询指定的软件包在系统中是否安装 :rpm......
  • 2022-2023-1 20221327 《计算机基础与程序设计》第一周学习总结
    作业信息班级:|https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP|作业要求:|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01|作业目标:快速浏览教材并......
  • Linux创建开机启动
    1、创建服务sudovim/lib/systemd/system/login.service2、写入如下最常用的内容[Unit]Description=networkdaemonAfter=network-online.targetsyslog.socketmysql.......
  • linux命令集
    第一部分切换用户:su+用户名关机/重启(三种方法):①shutdown-rnow(重启)              shutdown-hnow(关机)②poweroff(......
  • linux命令集【2】
    第二部分1.查看Linux的IP地址:ifconfig2.启动(start)/停止(stop)/重启服务(retart):service 服务名 start/stop/retart3.打包为.tar文件:tar-cf包名文件名4.查......
  • Linux软件包常见的几种下载、安装方法
    在线源下载和安装如果服务器是处于在线状态,在使用默认下载源是外国的情况下,安装更新软件包往往会比较痛苦的存在,下载了许久来一个超时就gg了。国内有许多镜像源,完美的解决......