- Команда Tee в Linux с примерами
- Синтаксис команды tee
- Как использовать команду tee
- Запись в несколько файлов
- Добавить в файл
- Игнорировать прерывание
- Скрыть вывод
- Использование tee в сочетании с sudo
- Выводы
- Команда Tee в Linux с примерами
- Linux Tee Command with Examples
- В этом руководстве мы рассмотрим основы использования tee команды.
- Синтаксис команды Tee
- Как использовать tee команду
- Запись в несколько файлов
- Добавить в файл
- Игнорировать прерывание
- Скрыть вывод
- Использование тройника в соединении с sudo
- Вывод
- Команда tee Linux
- Синтаксис команды tee
- Примеры использования
- 1. Простое использование команды tee
- 2. Добавление вывода в существующий файл
- 3. Запись вывода в несколько файлов
- 4. Игнорируем прерывание сигнала
- 5. Перенос вывода команды tee в другую команду
- 6. Команда tee и скрипты
- 7. Как скрыть вывод команды в терминале
- Итоги
- 🇧🇹 Как использовать команду Tee в Linux
- Что делает Тee?
- Зачем использовать tee, если вы можете выполнить аналогичную команду дважды?
- Добавление текста и перенаправление ошибок
- Заключение
Команда Tee в Linux с примерами
Команда tee читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно. tee в основном используется в сочетании с другими командами через трубопровод.
В этой статье мы рассмотрим основы использования команды tee .
Синтаксис команды tee
Синтаксис команды tee следующий:
- OPTIONS :
- -a ( —append ) — не перезаписывать файлы вместо добавления к данным файлам.
- -i ( —ignore-interrupts ) — игнорировать сигналы прерывания.
- Используйте tee —help чтобы просмотреть все доступные параметры.
- FILE_NAMES — один или несколько файлов. В каждый из которых записываются выходные данные.
Как использовать команду tee
В основном команда tee используется для отображения стандартного вывода ( stdout ) программы и записи его в файл.
В следующем примере мы используем команду df для получения информации об объеме доступного дискового пространства в файловой системе. Вывод передается по конвейеру команде tee , которая отображает вывод на терминал и записывает ту же информацию в файл disk_usage.txt .
Вы можете просмотреть содержимое файла disk_usage.txt с помощью команды cat .
Запись в несколько файлов
Команда tee также может записывать в несколько файлов. Для этого укажите в качестве аргументов список файлов, разделенных пробелом:
Добавить в файл
По умолчанию команда tee перезапишет указанный файл. Используйте параметр -a ( —append ), чтобы добавить вывод в файл :
Игнорировать прерывание
Чтобы игнорировать прерывания, используйте параметр -i ( —ignore-interrupts ). Это полезно, когда вы останавливаете команду во время выполнения с помощью CTRL+C и хотите, чтобы tee завершился корректно.
Скрыть вывод
Если вы не хотите, чтобы tee выводил данные на стандартный вывод, вы можете перенаправить его на /dev/null :
Использование tee в сочетании с sudo
Допустим, вы хотите записать в файл, который принадлежит пользователю root как пользователю sudo. Следующая команда завершится ошибкой, потому что перенаправление вывода не выполняется sudo. Перенаправление выполняется от имени непривилегированного пользователя.
Результат будет выглядеть примерно так:
Просто добавьте sudo перед командой tee как показано ниже:
tee получит вывод команды echo , повысит разрешения до sudo и запишет в файл.
Использование tee в сочетании с sudo позволяет записывать файлы, принадлежащие другим пользователям.
Выводы
Команда tee читает из стандартного ввода и записывает его в стандартный вывод и в один или несколько файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Команда Tee в Linux с примерами
Linux Tee Command with Examples
В этом руководстве мы рассмотрим основы использования tee команды.
Команда tee читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно. tee в основном используется в сочетании с другими командами через трубопровод.
Синтаксис команды Tee
Синтаксис tee команды следующий:
- OPTIONS :
- -a ( —append ) — не перезаписывать файлы, а добавлять их к заданным файлам.
- -i ( —ignore-interrupts ) — Игнорировать сигналы прерывания.
- Используйте tee —help для просмотра всех доступных опций.
- FILE_NAMES — Один или несколько файлов. Каждый из которых записывает выходные данные.
Как использовать tee команду
Основное использование tee команды — отобразить стандартный вывод ( stdout ) программы и записать его в файл.
В следующем примере мы используем df команду для получения информации об объеме доступного дискового пространства в файловой системе. Выходные данные передаются в tee команду, которая отображает выходные данные в терминал и записывает ту же информацию в файл disk_usage.txt .
Вы можете просмотреть содержимое disk_usage.txt файла с помощью команды cat .
Запись в несколько файлов
Команда tee также может записывать в несколько файлов. Для этого укажите в качестве аргументов список файлов, разделенных пробелом:
Добавить в файл
По умолчанию tee команда перезапишет указанный файл. Используйте опцию -a ( —append ), чтобы добавить вывод в файл :
Игнорировать прерывание
Чтобы игнорировать прерывания, используйте « -i ( –ignore-interrupts ) option. This is useful when stopping the command during execution with CTRL + C and want tee` для корректного выхода.
Скрыть вывод
Если вы не хотите tee писать в стандартный вывод, вы можете перенаправить его на /dev/null :
Использование тройника в соединении с sudo
Допустим, вы хотите записать файл, который принадлежит пользователю root как пользователь sudo. Следующая команда не будет выполнена, потому что sudo не перенаправляет вывод. Перенаправление выполняется как непривилегированный пользователь.
Вывод будет выглядеть примерно так:
Просто добавьте sudo перед tee командой, как показано ниже:
tee получит вывод команды echo , повысит права на sudo и запишет в файл.
Использование tee в сочетании с sudo позволяет записывать в файлы, принадлежащие другим пользователям.
Вывод
Команда tee читает из стандартного ввода и записывает его в стандартный вывод и один или несколько файлов.
Источник
Команда tee Linux
Иногда нам нужно сохранить вывод команды в файл, чтобы в последствии использовать вывод для других целей. Команда tee в Linux нужна для записи вывода любой команды в один или несколько файлов.
Суть ее работы можно описать заглавной буквой T — команда tee linux принимает данные из одного источника и может сохранять их на выходе в нескольких местах. То, как она может использоваться в Linux, хорошо видно на нескольких примерах, которые приведены ниже.
Синтаксис команды tee
Синтаксис команды достаточно простой:
$ tee опции файл
- -a или -append — Используется для записи вывода в конец существующего файла.
- -i или -ignore-interrupts — Используется, чтобы игнорировать прерывающие сигналы.
- -help — Используется для показа всех возможных операций.
- -version — Используется для показа текущей версии этой команды.
Для сохранения вывода команды можно передать один или несколько файлов.
Примеры использования
1. Простое использование команды tee
Команда ls -la нужна в Linux для показа списка файлов с описанием в текущем каталоге. Здесь команда tee используется для сохранения вывода ls -la в файл вывод.txt Введите следующие команды в терминале, чтобы проверить как работает команда tee.
ls -la | tee вывод.txt
Здесь первая команда показала вывод списка файлов в текущем каталоге в терминал и записала полученные данные в файл вывод.txt
Вторая команда показала содержимое файла вывод.txt
2. Добавление вывода в существующий файл
Если вывод любой команды записать в существующий файл с применением команды tee и операции -a, содержимое файла не будет перезаписано. Здесь вывод команды pwd будет добавлен в конец файла вывод.txt Запустите следующие команды с помощью терминала:
pwd | tee -a вывод.txt
Здесь первая команда отображает вывод pwd в терминал и записывает вывод в конец файла вывод.txt Вторая команда используется для выделения вывода файла. Показано, что файл вывод.txt содержит оба результата: из предыдущего примера и из этого.
3. Запись вывода в несколько файлов
Команда tee может использоваться для вывода любой команды сразу в несколько файлов. Для этого необходимо указать имена файлов, разделив их пробелом. Используйте следующие команды для сохранения вывода date в два файла: вывод1.txt и вывод2.txt
date | tee вывод1.txt вывод2.txt
cat вывод1.txt вывод2.txt
Здесь первая команда выводит текущее системное время и сохраняет полученные результаты в два файла вывод1.txt и вывод2.txt Вторая команда показывает идентичное содержимое обоих файлов.
4. Игнорируем прерывание сигнала
Команда tee linux с опцией -i используется в этом примере, чтобы игнорировать любые прерывания во время ее выполнения. Таким образом, команда будет выполнена правильно, даже если пользователь нажимает CTRL+C. Выполните следующие команды в терминале.
wc -l вывод.txt | tee -i вывод3.txt
Здесь первая команда считает количество строчек в файле вывод.txt и сохраняет полученный результат в файл вывод3.txt Вторая команда показывает содержимое файла вывод.txt, который содержит 37 строчек. Третья команда показывает содержимое файла вывод3.txt, в котором указано, что он действительно содержит 37 строчек.
5. Перенос вывода команды tee в другую команду
Вывод команды tee может быть перенесен в другую команду. В этом примере вывод из первой команды переносится в tee, а ее вывод — в другую команду. Запустите следующие команды в терминале:
ls | tee вывод4.txt | wc -lcw
Здесь первая команда используется для записи вывода ls в файл вывод4.txt и подсчета общего числа строк, слов и символов в файле вывод4.txt Вторая команда используется для отображения вывода команды ls, а третья — для отображения содержимого файла вывод4.txt
6. Команда tee и скрипты
Команда tee также может использоваться для записи вывода bash-скрипта в файл. Создайте bash-файл с приведенным кодом, который возьмет два входных числа из аргументов командной строки и выведет сумму этих чисел. Команда tee используется в этом примере для записи вывода add.sh в файл результат.txt
#!/bin/bash
a=$1
b=$2
((result=$a+$b))
echo «The addition of $a+$b=$result»Запустите следующую команду в терминале для записи файла и отображения его содержимого.
bash add.sh 40 80 | tee результат.txt
Здесь числа 40 и 80 переносятся в качестве аргументов командной строки в скрипт add.sh и вывод записывается в файл результат.txt Команда cat выводит соответствующий результат.
7. Как скрыть вывод команды в терминале
Если вы хотите записать вывод прямо в файл и не показывать его в терминале, используйте /dev/null с командой tee. Для этого выполните следующие команды.
df | tee вывод5.txt > /dev/null
Здесь первая команда используется для записи вывода команды df в файл вывод5.txt, при этом вывод не показывается в терминале. Вторая команда показывает полученный результат.
Итоги
Вывод любой команды может использоваться для нескольких целей. Используя команду tee с разными опциями, можно сохранить вывод команды в нескольких файлах. Применение команды tee в наиболее распространенных случаях хорошо показано в этой инструкции с примерами. Надеемся, читателю будут полезны приведенные упражнения.
Источник
🇧🇹 Как использовать команду Tee в Linux
Если вы когда-либо используете каналы и перенаправления в своей оболочке Linux, скорее всего, вам также иногда понадобится использовать утилиту tee.
Что делает Тee?
Команда, такая как
ничего не будет отображаться на вашем экране.
Это связано с тем, что знак > перенаправляет весь вывод в файл, а не выводит его на stdout.
Теперь file123 будет заполнен содержимым, которое ранее отображалось на вашем экране.
Чтобы отобразить содержимое вашего каталога на экране и записать его в файл, вы используете две команды.
С tee вы можете сделать обе эти вещи одновременно.
Зачем использовать tee, если вы можете выполнить аналогичную команду дважды?
В приведенном выше примере вам, очевидно, не понадобится tee, если вы можете выполнить ls в обычном режиме, а затем выполнить его снова и перенаправить вывод в файл.
Однако вы столкнетесь с ситуациями, когда выходные данные будут уникальными.
Представьте себе сценарий, в котором вы пытаетесь диагностировать проблему.
Вы запускаете diagnose | tee error.log
Ошибки, которые вы получаете, могут быть уникальными.
Вы хотите, чтобы они отображались на экране, чтобы вы могли видеть, что происходит во время тестирования.
Но вы также хотите, чтобы эти ошибки были сохранены в файле, поэтому вы можете просмотреть их позже или вставить результат в дискуссионный форум и спросить людей об этом.
Другая часто встречающаяся ситуация, когда вам может понадобиться tee, заключается в следующем: вы хотите записать вывод команды в место, где только пользователь root может читать или писать.
Это не сработает.
Затем вы можете подумать: «Ну, конечно, просто использую sudo!» И вы удивитесь, что это тоже не сработает:
Это потому, что после запуска sudo blkid вы по-прежнему входите в систему как обычный пользователь без полномочий root. И ваша оболочка (обычно bash) пытается записать в /root/somefile ваши учетные данные обычного пользователя.
Чтобы решить эту проблему, вы можете использовать tee:
Добавление текста и перенаправление ошибок
tee – полезная, но простая команда; основная команда | tee и этого иногда достаточно.
Однако есть два сценария, с которыми вы можете столкнуться, для которых потребуются следующие советы.
Первое, что нужно знать, это то, что по умолчанию он всегда перезаписывает файл.
Если вы запустите:
вторая команда перезапишет содержимое somefile, и вы увидите только содержимое последней выполненной команды.
Чтобы изменить это поведение, вы можете сделать так, чтобы текст добавлялся далее вместо перезаписи.
Для этого просто используйте ключ -a.
Второе, что нужно знать, это то, что не все результаты одинаковы.
Сообщения об ошибках обрабатываются по-разному, и хотя они появляются на экране, они не считаются стандартными, поэтому они не будут пойманы tee.
(Они считаются stderr.) Вот пример на grep.
Система будет отображать что-то вроде следующего изображения.
Сообщения с отказом в доступе пишутся в stderr.
Единственное, что пишется на стандартный вывод – это выделенный текст.
Вот почему вы заметите, что содержимое «somefile» – это то, что показано на рисунке ниже.
В этом случае, когда для поиска текста используется grep, полезно, чтобы сообщения об ошибках не перенаправлялись в файл.
Они просто заполнили бы файл ненужным мусором.
Вам нужно только увидеть найденные результаты.
Но когда вам нужны сообщения об ошибках, используйте 2>&1, который перенаправляет stderr в stdout.
С помощью этой команды вы заметите, что somefile теперь также содержит сообщения об ошибках.
Заключение
Надеемся, что этот урок охватывает все, что вам нужно, чтобы извлечь максимальную пользу из команды tee.
Но если вы столкнулись с ситуацией, когда вы застряли с чес-либо, оставьте комментарий ниже, и мы сможем вам помочь.
Источник