Поиск по сайту:

Учебное пособие по командам Tee в Linux с примерами для начинающих

При работе с терминалом в Linux доступно множество утилит командной строки, которые облегчат вашу жизнь. Одной из таких утилит является Tee. В этом кратком руководстве мы узнаем, что такое Tee и как использовать команду Tee в Linux, на практических примерах.

Знакомство с командой Tee

tee — это простая утилита командной строки, которая принимает входные данные и записывает выходные данные в файл и стандартный вывод (т. е. терминал). Команда Tee в основном будет использоваться в сценариях оболочки, когда вы хотите перенаправить вывод в несколько файлов и выполнить дальнейшую обработку вывода.

Команда Tee является частью GNU coreutils, поэтому она предустановлена во всех дистрибутивах Linux.

Чтобы проверить, доступна ли команда tee в вашем дистрибутиве Linux, выполните следующую команду:

$ which tee
/usr/bin/tee

Чтобы проверить версию тройника, вы можете использовать флаг --version.

$ tee --version
tee (GNU coreutils) 8.32

Отобразить справку по команде tee

Если вы никогда не использовали команду tee, рекомендуется начать с раздела справки по команде tee.

Вы можете получить доступ к странице руководства по команде tee, чтобы узнать больше об этой утилите.

man tee

Вы также можете передать аргумент --help команде tee, чтобы отобразить справочное руководство.

tee --help

Синтаксис команды тройника

Типичный синтаксис команды Tee приведен ниже:

тройник [ОПЦИЯ]… [ФАЙЛ]…

Он принимает флаги и имя файла, куда будет перенаправлен вывод.

Есть два важных флага, которые вы чаще всего будете использовать с командой tee.

  • -a, --append флаг: добавить к файлам.
  • Флаг -i, -ignore-interrupts: игнорировать сигналы прерываний.

Теперь позвольте мне показать вам несколько примеров команды tee в Linux.

Примеры команд Linux Tee для начинающих

Как уже говорилось, команда tee принимает входные данные и выводит выходные данные на терминал, а также файл, который передается в качестве аргумента.

В приведенном ниже примере команда tee принимает входные данные команды echo и выводит выходные данные на терминал, а также в файл hello.txt.

$ echo "Welcome to OSTechNix" | tee hello.txt
Welcome to OSTechNix

Давайте проверим содержимое файла hello.txt:

$ cat hello.txt 
Welcome to OSTechNix

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

Используйте команду tee с оператором Pipe

Команда Tee предназначена не только для вывода стандартного ввода на терминал, но и для передачи его в другую программу для дальнейшей обработки.

В основном команда tee будет использоваться в сочетании с оператором pipe (|) в сценариях оболочки.

Взгляните на приведенный ниже пример.

$ echo "Hello world" | tee hello.txt | rev
dlrow olleH
$ cat hello.txt
Hello world

Позвольте мне объяснить, что происходит, когда вы запускаете приведенную выше команду.

  • Команда echo отправит свой вывод "Hello World" в качестве входных данных для команды tee через канал.
  • Команда Tee сохранит вывод в заданном файле hello.txt.
  • Вместо вывода вывода на терминал (что является поведением по умолчанию), команда tee передает строку "Hello World" в качестве входных данных для rev команда, которая печатает строку в обратном порядке.

Вот еще один пример.

Следующая команда создает каталог с именем «ostechnix», подсчитывает количество символов в «ostechnix» и выводит «ostechnix» на терминал:

echo "ostechnix" | tee >(xargs mkdir) >(wc -c)

Внимание! Вам может потребоваться использовать sudo с командой tee, если вы создаете файлы в каталогах, к которым у вас нет доступа. обычный пользователь.

Передача нескольких файлов

Команда Tee также принимает несколько файлов в качестве аргументов и сохраняет выходные данные в каждом файле.

echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt
Welcome to OSTechNix

Проверим содержимое каждого файла:

cat hello1.txt
Welcome to OSTechNix
cat hello2.txt
Welcome to OSTechNix
cat hello3.txt
Welcome to OSTechNix

Отправьте вывод в несколько файлов с помощью команды tee

Переопределить или добавить

По умолчанию команда tee выполняет поиск, если файл уже доступен, и заменяет данные новыми. Если файл недоступен, он будет создан.

Если вы хотите добавить данные вместо переопределения, используйте флаг -a или --append.

$ cat hello1.txt
Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt
I am using PoP_OS Cosmic Desktop
$ cat hello1.txt
Welcome to OSTechNix
I am using PoP_OS Cosmic Desktop

Объединение Tee с оператором перенаправления

Если вы хотите не выводить выходные данные на терминал, а просто записывать их в файлы, вы можете объединить оператор перенаправления с командой tee.

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

echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null

Сигналы прерывания

Команда Tee имеет возможность прервать SIGINT с помощью флага -i или --ignore-interrupts.

Значение: если вы нажмете CTRL + C в своем терминале во время запуска команды tee с флагом -i, команда tee прервет сигнал и выполнит корректный выход, прочитав EOF из ТРУБЫ.

{ echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
cat hello1.txt
Hello world

Краткое содержание

Tee — простая программа, которую вы можете не использовать ежедневно. Однако знание команды tee пригодится при написании сценариев оболочки. Надеюсь это поможет.

Статьи по данной тематике