溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中如何使用tee命令

發布時間:2021-06-23 16:25:38 來源:億速云 閱讀:444 作者:Leah 欄目:系統運維

這期內容當中小編將會給大家帶來有關Linux中如何使用tee命令,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Linux Tee命令是一個命令行工具,它從標準輸入中讀取結果,并將結果寫入標準輸出和文件中。使用Linux中的tee命令可以一舉兩得:從標準輸入讀取結果,同時將結果打印到文件和標準輸出。

Tee命令語法

tee命令語法非常簡單,采用以下格式:

$tee 選項 文件

以下是可以與tee命令一起使用的一些選項:

linuxmi@linuxmi:~/www.linuxmi.com$ tee --help 用法:tee [選項]... [文件]... 將標準輸入復制到每個指定文件,并顯示到標準輸出。    -a, --append        內容追加到給定的文件而非覆蓋   -i, --ignore-interrupts    忽略中斷信號   -p                        對寫入非管道的行為排查錯誤       --output-error[=模式]   設置寫入出錯時的行為。見下面“模式”部分       --help        顯示此幫助信息并退出       --version        顯示版本信息并退出  模式確定向輸出寫入出錯時的行為:   'warn'         對向任何文件輸出出錯的情況進行診斷   'warn-nopipe'  對向除了管道以外的任何文件輸出出錯的情況進行診斷   'exit'         一旦輸出出錯,則退出程序   'exit-nopipe'  一旦輸出出錯且非管道,則退出程序 -p 選項的默認模式是“warn-nopipe”。 當 --output-error 沒有給出時,默認的操作是在向管道寫入出錯時立刻退出, 且在向非管道寫入出錯時對問題進行診斷。

Linux中如何使用tee命令

在tee命令的語法中,文件指的是一個或多個文件。

讓我們看看這個命令是如何使用的。

示例1 – tee命令的基本用法

如前所述,tee命令的主要功能是顯示命令(stdout)的輸出并將其保存到一個文件中。在下面的示例中,我們檢查系統中的塊設備并將結果發送到tee命令,tee命令將輸出顯示到終端,同時將其保存在名為www.linuxmi.com .txt的新文件中:

linuxmi@linuxmi:~/www.linuxmi.com$ lsblk | tee www.linuxmi.com.txt

Linux中如何使用tee命令

可以使用cat命令檢查www.linuxmi.com.txt文件的內容,如下所示:

cat www.linuxmi.com.txt

示例2 – 使用tee將命令輸出保存到多個文件

此外,您可以將命令的輸出寫入幾個空格分隔的文件,如下面的語法所示。

$ command | tee file1 file2 file3 . . .  linuxmi@linuxmi:~/www.linuxmi.com$ hostnamectl | tee linuxmi.txt linuxmi.com.txt

Linux中如何使用tee命令

同樣,您可以使用cat命令確認兩個文件中的輸出是否存在,如下所示:

cat linuxmi.txt cat linuxmi.com.txt

示例3 – 禁止在屏幕輸出tee命令

如果要隱藏或禁止tee命令在屏幕上打印輸出,請將輸出重定向到/dev/null,如圖所示:

$ command | tee file > /dev/null

例如,

linuxmi@linuxmi:~/www.linuxmi.com$ df -Th | tee linuxmi.txt > /dev/null linuxmi@linuxmi:~/www.linuxmi.com$ uname -a | tee linuxmi.txt > /dev/null linuxmi@linuxmi:~/www.linuxmi.com$ cat linuxmi.txt Linux linuxmi 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Linux中如何使用tee命令

示例4 – 使用tee命令將輸出附加到文件

默認情況下,tee命令覆蓋文件的內容(比如示例3)。要附加輸出并防止擦除當前內容,請使用-a或–append選項。

$ command | tee -a file

在第二個命令中,如圖所示,我們將date命令的輸出附加到linuxmi.com.txt,其中已經包含了關于系統上USB設備的信息。

linuxmi@linuxmi:~/www.linuxmi.com$ lsusb | tee linuxmi.com.txt linuxmi@linuxmi:~/www.linuxmi.com$ date | tee -a linuxmi.com.txt

Linux中如何使用tee命令

示例5 – 將tee與sudo命令一起使用

假設作為sudo用戶,您希望在根用戶擁有的文件上進行寫入。當然,任何提升的操作都需要在命令之前調用sudo用戶。

要實現這一點,只需在tee命令前面添加sudo,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ echo “192.168.1.100 db-01” | sudo tee -a /etc/hosts

Linux中如何使用tee命令

因此,tee在左邊接收echo命令的輸出,并使用sudo命令提升它,該命令最終將輸出附加到文件中。

示例6 – 使用tee命令將一個命令的輸出重定向到另一個命令

使用tee命令,我們可以很容易地將一個命令的輸出重定向到另一個命令。這里第一個命令的輸出將作為第二個命令的輸入。示例如下:

linuxmi@linuxmi:~/www.linuxmi.com$ grep ‘root’ /etc/passwd | tee /tmp/passwd.tmp | wc -l

Linux中如何使用tee命令

示例7 – 使用tee命令將更改保存到Vim編輯器中的文件

假設您以非root用戶身份工作,正在對root擁有的文件進行更改,但忘記將sudo放在命令前面,現在您想保存更改,示例如下:

linuxmi@linuxmi:~/www.linuxmi.com$ vim /etc/hosts

保存對文件的更改時,您將收到只讀消息,/etc/hosts” E212: 無法打開并寫入文件

Linux中如何使用tee命令

現在要在Vim編輯器中保存對/etc/hosts文件的更改,請運行

:w !sudo tee %

它將提示您輸入用戶的密碼,如果用戶擁有sudo權限,那么更改將被保存。

Linux中如何使用tee命令

示例8 – 使用tee命令時忽略中斷信號

在tee命令中使用“-i”選項可以忽略中斷信號(CTRL-C),示例如下所示:

linuxmi@linuxmi:~/www.linuxmi.com$ ping -c 5 linuxmi.com | tee -i /tmp/pingtest.tmp

Linux中如何使用tee命令

示例9 – shell腳本中的tee命令用法

在shell腳本中也經常使用Tee命令,下面列出了一個常見的示例:

linuxmi@linuxmi:~/www.linuxmi.com$ vi basic-script.sh
#!/bin/bash LOGFILE=/tmp/basic-logs-$(date +%d%m%Y) FLAVOR=$(cat /etc/*-release  | grep -w 'NAME=' | cut -d"=" -f2 | awk '{print $1}'| sed 's/"//g') if [ $FLAVOR == CentOS ]; then    dmesg | grep -i 'error' | tee -a $LOGFILE    grep -i 'installed' /var/log/dnf.log | tee -a $LOGFILE else    echo 'do nothing' fi

Linux中如何使用tee命令

上述就是小編為大家分享的Linux中如何使用tee命令了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女