# Linux tee命令怎么用
## 一、tee命令概述
`tee`是Linux系統中一個非常實用的命令行工具,名稱來源于管道中的"T型接頭"。它的核心功能是**將標準輸入同時輸出到屏幕和文件**,實現數據流的"分流"操作。
### 基本工作原理
1. 從標準輸入讀取數據
2. 將數據同時寫入:
- 標準輸出(默認顯示在終端)
- 一個或多個指定文件
## 二、基本語法格式
```bash
command | tee [選項] 文件名...
command
:產生輸出的命令|
:管道符號,將前一個命令的輸出傳遞給tee文件名
:指定要寫入的文件(可多個)選項 | 全稱 | 作用 |
---|---|---|
-a |
--append |
追加到文件而非覆蓋 |
-i |
--ignore-interrupts |
忽略中斷信號 |
-p |
--output-error |
診斷寫入錯誤時的行為 |
--help |
顯示幫助信息 | |
--version |
顯示版本信息 |
ls -l | tee directory_list.txt
效果:
- 屏幕上顯示ls -l
的結果
- 同時將結果保存到directory_list.txt
date | tee -a logfile.txt
特點: - 如果文件已存在,新內容追加到文件末尾 - 保留原有文件內容
df -h | tee disk_usage.txt backup_disk_usage.txt
注意: - 會創建兩個內容相同的文件 - 適用于需要多份相同日志的場景
echo "新內容" | sudo tee /etc/config_file
優勢:
- 解決普通用戶寫入系統文件權限問題
- 比sudo echo
更安全可靠
complex_command | tee debug.log | next_command
作用: - 保存中間結果用于調試 - 不影響后續管道操作
ping example.com | tee -i ping_log.txt
應用場景: - 即使按Ctrl+C終止命令,已收集數據也會保存
dmesg | tee full_dmesg.log | grep -i error > errors.log
效果:
- 保存完整日志到full_dmesg.log
- 僅將錯誤信息提取到errors.log
tail -f /var/log/syslog | tee monitor.log
特點: - 同時查看實時日志和保存日志 - 適合長時間運行的監控任務
command1 | tee file1.log | command2 | tee file2.log | command3
數據流向: 1. command1 → file1.log → command2 2. command2 → file2.log → command3
{
echo "===== 系統信息 ====="
date
echo "----- CPU信息 -----"
lscpu
echo "----- 內存信息 -----"
free -h
} | tee system_info_$(date +%Y%m%d).log
sudo apt-get install nginx | tee ~/nginx_install_$(date +%s).log
./run_tests.sh | tee test_results_$(date +%F).log
文件覆蓋風險:
權限問題:
磁盤空間:
性能影響:
>
只寫入文件,不顯示在屏幕tee
既顯示又寫入文件command | tee file.log >/dev/null
可以,但需要先掛載網絡存儲:
echo "test" | tee /mnt/nas/share/test.log
配合split
命令:
command | tee >(split -b 100M - backup_) | process_data
工具 | 優點 | 缺點 |
---|---|---|
tee |
內置工具,簡單可靠 | 功能相對基礎 |
script |
記錄完整會話 | 產生二進制文件 |
重定向 | 語法簡單 | 不能同時顯示輸出 |
tee
命令是Linux系統管理員的利器,它:
- 解決了”既要看過程又要存結果”的需求
- 特別適合:
- 調試復雜命令
- 保存重要操作記錄
- 自動化腳本日志收集
掌握tee命令能顯著提高命令行工作效率,建議將其納入日常使用的基礎工具集。
小技巧:在~/.bashrc中添加別名可以簡化常用tee操作:
> alias savelog='tee ~/logs/$(date +%Y%m%d_%H%M%S).log' > ``` > 使用方式:`command | savelog`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。