Tee命令的幾個使用實例

Tee命令是一個命令行工具,它從標準輸入讀取數據,同時將結果打印到文件中和標準輸出到屏幕中。linux

Tee 命令語法vim

tee 選項 文件名bash

實例一:基本方式app

tee命令的主要功能是顯示命令的輸出並將其保存到一個文件中。在下面的示例中,咱們檢查系統中的塊設備並將結果發送到tee命令,tee命令將輸出顯示到終端,同時將其保存在devices.txt的文件中:編輯器

[root@localhost ~]# lsblk | tee devices.txt工具

Tee命令的幾個使用實例Tee命令的幾個使用實例
能夠使用cat命令檢查devices.txt文件的內容,以下所示:spa

[root@localhost ~]# cat devices.txt 命令行

Tee命令的幾個使用實例Tee命令的幾個使用實例

實例二:命令輸出寫入多個文件3d

此外,能夠將命令的輸出寫入多個文件,用空格分隔。以下所示:code

[root@localhost ~]# hostnamectl | tee file1.txt file2.txt

Tee命令的幾個使用實例Tee命令的幾個使用實例
咱們調用了hostnamectl命令來打印系統的主機名以及其餘詳細信息,並將標準輸出保存爲兩個文件file1.txt和file2.txt

使用cat命令查看file1.txt和file2.txt:
Tee命令的幾個使用實例Tee命令的幾個使用實例

實例三:靜默輸出到文件

若是你想隱藏或禁止tee命令在屏幕上打印輸出,那麼將輸出重定向到/dev/null,以下所示:

[root@localhost ~]# df -Th | tee file4.txt > /dev/null

Tee命令的幾個使用實例Tee命令的幾個使用實例

實例四:在文件中追加輸出

默認狀況下,tee命令覆蓋文件的內容。若要追加輸出並防止擦除當前內容,請使用-a或--append選項。

[root@localhost ~]# lsblk | tee file1.txt
[root@localhost ~]# date | tee -a file1.txt
[root@localhost ~]# cat file1.txt

Tee命令的幾個使用實例Tee命令的幾個使用實例
上面命令中,第一條命令時將內容輸出到file1.txt,第二條命令tee命令加上了-a選項,就能夠追加內容到file1.txt裏面了,第三條命令用cat查看file1.txt,發現上面兩條命令輸出的內容都保存下來了。

實例五:tee命令和sudo一塊兒使用

假設只能夠用一個sudo用戶,但願寫入root用戶擁有權限的文件。任何提高操做都須要在命令以前調用sudo用戶。要實現這一點,只需在tee命令前面加上sudo,以下所示:

[bob@localhost ~]$ echo "10.200.50.20 db-01" | sudo tee -a /etc/hosts/

Tee命令的幾個使用實例Tee命令的幾個使用實例

實例六:將一個命令的輸出重定向到另外一個命令

使用tee命令,咱們能夠將一個命令的輸出重定向到另外一個命令。這裏,第一個命令的輸出將做爲第二個命令的輸入。示例以下:

[root@localhost ~]# grep 'root' /etc/passwd | tee /tmp/passwd.tmp | wc -l
2
[root@localhost ~]# cat /tmp/passwd.tmp
root0:0:root:/root:/bin/bash
operator11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

Tee命令的幾個使用實例Tee命令的幾個使用實例

實例七:在vim編輯器中使用tee

假設你是一個非root用戶,你正在修改root用戶擁有的文件,忘記使用sudo權限打開文件,如今你想保存更改,示例以下:

[bob@localhost ~]$ vim /etc/hosts

Tee命令的幾個使用實例Tee命令的幾個使用實例
如今要將更改保存到vim編輯器中的/etc/hosts文件,請運行:

:w !sudo tee %

Tee命令的幾個使用實例Tee命令的幾個使用實例
上面提示輸入用戶的密碼,輸入完成以後便可保存成功。

總結

Tee命令是一個命令行工具,它從標準輸入讀取數據,同時將結果打印到文件中和標準輸出到屏幕中。

相關文章
相關標籤/搜索