Linux tee命令使用详解

tee命令主要被用来向standout(标准输出流,通常是命令执行窗口)输出的同时也将内容输出到文件,下面是tee的man 信息

read from standard input and write to standard output and files

下面我们通过几个应用场景来熟悉tee命令。

场景1: 如何使用tee命令

tee命令格式是:

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

从man文件的定义了解 tee从标准输入流读取数据,所以这里我们使用一个简单的命令产生输出流作为tee的输入流,这里就选用ping命令,

[mysql@localhost ~]$ ping baidu.com
PING baidu.com (220.181.57.216) 56(84) bytes of data.
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 time=30.1 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 time=33.1 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 time=31.9 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=4 ttl=128 time=30.9 ms
...

现在我们希望输出到控制台的同时,将输出到控制台的内容保存到另外的文件,以便其他的用途,那么这时候tee命令就可以发挥作用了,

[mysql@localhost ~]$ ping baidu.com | tee ping-baidu.log #输出到控制台的同时,将内容保存到ping-baidu.log文件中
PING baidu.com (220.181.57.216) 56(84) bytes of data.
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 time=30.6 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 time=30.5 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 time=30.2 ms
^C[mysql@localhost ~]$ cat ping-baidu.log #检查文件内容是否和输出一致
PING baidu.com (220.181.57.216) 56(84) bytes of data.
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 time=30.6 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 time=30.5 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 time=30.2 ms

场景2: 如何向文件里面追加内容?

上面的操作中,输出到ping-baidu.log,如果这个文件存在,则先将文件里面的内容全部清除,然后再输入内容,对于某些场景下这种方式则不适合,我们希望每次的输出是追加到文件里面,这时我们可以通过-a参数来指定.

ping baidu.com | tee -a ping-baidu.log

场景3: 如何同时输出到多个文件?

直接在tee命令后面追加待输入的文件名即可,具体格式是:

ping baidu.com | tee ping.log ping-baidu.log

场景4: 如何将tee命令的输出重定向为另一个命令的输入流

直接在tee命令后面接| 和下一个命令,就是按照pipeline的方式来弄

场景5: 通过使用tee命令来提高写入文件的权限等级

在实际操作liunx服务器的时候,我们在配置某些文件的时候,配置完了,保存的时候,发现自己当前的用户不具有保存文件的文件,这时候内心是十分奔溃的,有没有解决的方式呢?这时候tee命令来解救我们的烦恼。

具体的操作就是在文件保存的时候输入:w !sudo tee %,这时候vi会提醒你输入sudo操作的密码,输入正确之后,文件就保存了,此时你可以安心的:q!退出文件了。

场景6: 如何让tee忽略中断事件

-i参数能够让tee忽略中断事件(SIGINT)

ping baidu.com | tee -i ping.log

参考:

https://www.howtoforge.com/linux-tee-command/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux输出信息并将信息记录到文件(tee命令)

    前言 最近工作中遇到一个需求,需要将程序的输出写到终端,同时写入文件,通过查找相关的资料,发现可以用 tee 命令实现,首先来解释一下 tee 命令的作用: read from standard input and write to standard output and files. 它从标准输入读取内容并将其写到标准输出和文件中. 例如: ls | tee ls_tee.txt cat ls_tee.txt 使用 tee 时,如果想保留目标文件原有的内容,可以使用 -a 参数,附加至给出的文

  • 在linux (centos)上使用puppeteer实现网页截图功能

    你在linux上安装puppeteer时可能遇到如下问题,本文将引导你如何爬坑! > puppeteer@2.0.0 install /www/node_modules/puppeteer > node install.js ERROR: Failed to download Chromium r706915! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download. { Error: EAC

  • Linux tee命令使用详解

    tee命令主要被用来向standout(标准输出流,通常是命令执行窗口)输出的同时也将内容输出到文件,下面是tee的man 信息 read from standard input and write to standard output and files 下面我们通过几个应用场景来熟悉tee命令. 场景1: 如何使用tee命令 tee命令格式是: tee [OPTION]... [FILE]... 从man文件的定义了解 tee从标准输入流读取数据,所以这里我们使用一个简单的命令产生输出流作为

  • linux less命令实例详解

    less 文件名 查看文件 less 文件名 | grep -n 查找内容 根据内容过滤显示,并显示行号 less +行号g 文件名 查看文件,并定位到某行 d  向下翻页 u 向上翻页 g 跳到首行 G 跳到底部 ? 查找内容 向上查找 / 查找内容  向下查找 n 下一个 N 上一个 q 退出less命令 下面是具体栗子: 1.打开文件 less catalina.out 2.查看文件,并显示行号 less -N catalina.out 3.定位到某行(这里定位到第10行) less +1

  • Linux lsof命令使用详解

    lsof(list open files)是一个查看进程打开的文件的工具. 在 linux 系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以 lsof 命令不仅可以查看进程打开的文件.目录,还可以查看进程监听的端口等 socket 相关的信息.本文将介绍 lsof 命令的基本用法,本文中 demo 的演示环境为 ubuntu 18.04. 常用选项 -a 指示其它选项之间为与的关系 -c <进程名> 输出指定进程所打开的文件 -d <文件描述符>

  • Linux ls命令参数详解

    -a -- 全部(all).列举目录中的全部文件,包括隐藏文件(.filename).位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录.      -l -- 长(long).列举目录内容的细节,包括权限(模式).所有者.组群.大小.创建日期.文件是否是到系统其它地方的链接,以及链接的指向.      -F -- 文件类型(File type).在每一个列举项目之后添加一个符号.这些符号包括:/ 表明是一个目录:@ 表明是到其它文件的符号链接:* 表明是一个可执行文件.    

  • linux mpstat命令使用详解

    1. mpstat命令 1.1 命令格式 mpstat [ -A ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ] [ -P { cpu [,...] | ON | ALL } ] [ interval [ count ] ] OPTIONS: -A: 等同于-u -I ALL -P ALL -I:可以指定SUM CPU SCPU ALL四个参数,SUM表示每个处理器的中断总数,CPU表示每个核的每秒中断数量, SCPU表示每个核每秒的软中断数量

  • linux nslookup命令使用详解

    [nslookup何许人?] nslookup命令,是Linux里非常常用的网络命令,简而言之就是"查DNS信息用的". 通过man nslookup可以看到对于nslookup的官方解释是"query Internet name servers interactively". [nslookup作者何许人?] 通过man nslookup可以看到其作者是Andrew Cherenson,我寻找到了他的Linkedin主页,原来 他是一位计算机科学的高材生,曾经就读

  • Linux netstat命令大全详解

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等. 输出信息含义 执行netstat后,其输出结果为 Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6

  • Linux常用命令mkdir详解

    mkdir  make directories  创建目录 语法格式:mkdir [option][directory] mkdir [选项] [目录] 注意:mkdir 命令以及后面的选项和目录,每个元之间都要至少要有一个空格 参数选项:-p,-m mkdir -p ysg/test 使用 mkdir 创建多级目录时,建议直接只用 -p 参数,可以避免出现 "No such file or directory" 没有文件或目录的报错了,也不会影响已存在的目录. mkdir -m 77

  • Linux traceroute命令使用详解

    traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的. 常见命令参数 Options: -4 Use IPv4 -6 Use IPv6 -d --debug Enable socket level debugging -F --dont-fragment Do not fragment packets -f f

  • linux 中的ls命令参数详解及ls命令的使用实例

    一.ls命令参数详解 可以通过阅读 ls 的说明书页(man ls)来获得选项的完整列表. -a – 全部(all).列举目录中的全部文件,包括隐藏文件(.filename).位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录. -l – 长(long).列举目录内容的细节,包括权限(模式).所有者.组群.大小.创建日期.文件是否是到系统其它地方的链接,以及链接的指向. -F – 文件类型(File type).在每一个列举项目之后添加一个符号.这些符号包括:/ 表明是一个目录:

随机推荐