当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux tee命令使用详解

    栏目:Linux/apache问题 时间:2019-12-04 13:22

    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服务器的时候,我们在配置某些文件的时候,配置完了,保存的时候,发现自己当前的用户不具有保存文件的文件,这时候内心是十分奔溃的,有没有解决的方式呢?这时候