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