Команда Tee в Linux: Примеры Использования

Команда tee в Linux считывает стандартный ввод и записывает его одновременно в стандартный вывод и в один или несколько подготовленных файлов. При обычном перенаправлении потока вывода строки команды будут записаны в файл, но мы не сможем увидеть вывод одновременно. С помощью команды tee мы можем это сделать! В этом руководстве мы поможем вам основы использования команды tee в Linux.

Эта команда часто используется в сценариях командной оболочки для отображения хода процесса при выводе одних и тех же записей в файлы журналов. Раскройте для себя весь потенциал VPS с этим ценным навыком!

Синтаксис и Использование Команды Tee в Linux

Прежде чем вы начнёте использовать команду tee в Linux, вы должны получить доступ к вашему VPS, используя SSH. Если у вас возникли проблемы, ознакомьтесь с нашим руководством по PuTTY.

Основной синтаксис команды:

wc -l file1.txt | tee file2.txt

Приведенная выше команда проверит количество строк в файле file1.txt, выведет результат в терминал и сохранит его в файле file2.txt.

Отправка Вывода Команды Tee в Linux Другим Командам

При использовании команды tee в Linux мы получаем вывод в терминале, который мы можем передать другой команде для обработки. Следующая команда выведет список файлов внутри папки и с помощью первого канала запишет вывод в файл test.txt. После этого передаст вывод третьей команде — grep для идентификации файлов, содержащих в себе строку py:

ls | tee test.txt | grep 'py'

Другие Операции с Командой Tee в Linux

Если вы хотите узнать больше классных функций команды tee в Linux, вы должны знать, как открыть руководство пользователя! Это намного упростит использование правильного синтаксиса!

Большинство пользователей, как правило, копируют и вставляют команды в терминал, но мы призываем вас не торопиться и потратить время на их ввод вручную. Таким образом, вы по-настоящему освоите команду tee и синтаксис других команд в Linux.

Чтобы поднять документацию, вы можете использовать:

tee --help

Каждая команда сопровождается информацией о версии. Это можно проверить с помощью:

tee --version

По умолчанию команда tee перезаписывает файл с выводом исходной команды, что можно отменить, используя добавляемую опцию -a.

ls | tee –a file.txt

С помощью команды tee в Linux мы также можем сохранить вывод команды в нескольких файлах. Эта опция используется для многократной обработки вывода команды в сценарии оболочки:

ls | tee file1.txt file2.txt file3.txt

Как и в случае стандартных команд, к которым добавляется >, стандартный поток ошибок и стандартный поток вывода (stdout) в tee также обрабатываются по-разному. Обычный знак канала | сохранит в файл только стандартный вывод, но если нам нужны и стандартный поток вывода, и стандартный поток ошибок, следует использовать |& c Linux командой tee.

Нормальная копия стандартного вывода:

команда > file.txt Обычный способ перенаправления стандартного вывода
команда tee file.txt Использование tee с перезаписью
команда tee -a file.txt Использование tee с дописыванием в файл


Стандартный поток вывода и стандартный поток ошибки:

команда &> file.txt Обычный способ перенаправления стандартного вывода и ошибки
команда |& tee file.txt Использование tee с перезаписью
команда |& tee -a file.txt Использование tee с дописыванием в файл


Запись файлов с использованием повышенных привилегий в редакторе vim — это ещё одно преимущество команды tee. В среде с высокой степенью защиты обычные операции Linux выполняются с использованием непривилегированных пользователей. Для выполнения административных задач с правами администратора мы используем команду sudo.Стандартный поток вывода и стандартный поток ошибки:

Но иногда нам нужно отредактировать файлы, которые требуют прав администратора.

Отмена изменений и повторное открытие файла с использованием необходимых привилегий посредством sudo — один из вариантов, как это можно сделать. Но если мы используем команду tee, мы можем избежать этой ситуации, записав файл на самом начальном этапе, не отказываясь от изменений с помощью опции повышенных привилегий. При записи в редакторе vim синтаксис будет следующим:

:w !sudo tee %

Выводи

Команда tee в Linux — удобная утилита для установки скриптов, которая, к сожалению, редко используется системными администраторами. Но как только вы поймёте принцип работы этой команды, уверенны, вы будете использовать её всегда вместо > для перенаправления вывода. Удачи с улучшением вашего проекта! До встречи в следующем руководстве.

Author
Автор

Olha L.

Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов'язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.