- Команда Tee в Linux с примерами
- Синтаксис команды tee
- Как использовать команду tee
- Запись в несколько файлов
- Добавить в файл
- Игнорировать прерывание
- Скрыть вывод
- Использование tee в сочетании с sudo
- Выводы
- Команда tee Linux
- Синтаксис команды tee
- Примеры использования
- 1. Простое использование команды tee
- 2. Добавление вывода в существующий файл
- 3. Запись вывода в несколько файлов
- 4. Игнорируем прерывание сигнала
- 5. Перенос вывода команды tee в другую команду
- 6. Команда tee и скрипты
- 7. Как скрыть вывод команды в терминале
- Итоги
- How to Use the Linux tee Command
- What Does tee Command Do in Linux?
- tee Commands in Linux With Examples
- Basic Use
- Append to the Given File
- Write to Multiple Files
- Hide the Output
- Redirect Output of One Command to Another
- Ignore Interrupts
- Using tee with Sudo
- Using tee in Vim Editor
- Diagnose Errors Writing to Non-Pipes
- Use tee Command with Bash Script
- Watch Log Files
- See Help and Version Information
Команда 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
Иногда нам нужно сохранить вывод команды в файл, чтобы в последствии использовать вывод для других целей. Команда 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 в наиболее распространенных случаях хорошо показано в этой инструкции с примерами. Надеемся, читателю будут полезны приведенные упражнения.
Источник
How to Use the Linux tee Command
Home » SysAdmin » How to Use the Linux tee Command
When the user executes a command in a Linux interactive shell, the output displays in the text terminal. However, there are ways to change this behavior using additional shell commands connected in a pipeline.
In this tutorial, you will learn how to use the tee command in Linux to manage the output of a command.
- A system running Linux
- Access to the command line or terminal
- Sudo privileges
What Does tee Command Do in Linux?
The tee command reads standard input (stdin) and writes it to both standard output (stdout) and one or more files. tee is usually part of a pipeline, and any number of commands can precede or follow it.
Note: To process standard inputs in Linux, you can use the xargs command which can be used in combination with other commands.
tee Commands in Linux With Examples
The tee command is used alone or with additional options. The following sections list the available options and provide command usage examples.
Basic Use
The basic syntax for the tee command is:
The example below demonstrates the use of tee to create a file that stores information about a network interface while providing the same output in the terminal:
The cat command confirms that tee successfully wrote the output of ifconfig to the file example.txt :
If the file used for the command already exists, tee overwrites the previous contents of the file.
Append to the Given File
Overwriting the file’s content is the default behavior of the tee command. Use argument -a (or —append ) to add the command output to the end of the file.
For example, use the echo command to append a line of text to a file:
Confirm the successful addition with the cat command:
Write to Multiple Files
Use tee followed by any number of files to write the same output to each of them:
The example below shows writing the output of the echo command to two files:
The ls command shows that tee successfully created files example1.txt and example2.txt .
Hide the Output
To tell tee to store the command output in a file and skip the terminal output, use the following syntax:
In the example bellow, tee creates a file containing the network interface data, skipping the standard output:
Redirect Output of One Command to Another
tee does not have to be the last command in the pipeline. Use it to forward the output to another command:
In the following example, tee stores the output of the ls command to example.txt and passes the content of that file to the grep command, which finds and displays all instances of the word “example”:
Ignore Interrupts
To enable tee to exit properly even after the previous command has been interrupted, add the argument -i (or —ignore-interrupts ):
The next example shows tee writing output from the ping command and completing the action successfully even after ping is interrupted with Ctrl+C :
Using tee with Sudo
To enable tee to write to a root-owned file or file belonging to another user, place the sudo command right before tee .
The example below shows an unsuccessful attempt to write to the root-owned sudoex.txt . When the sudo command is added, the operation completes:
Using tee in Vim Editor
If you open and edit a root-owned file in Vim without using the sudo command, trying to save changes produces an error:
To override this error, type the following into Vim:
After you enter the sudo password, Vim displays a warning but writes the changes to the file.
Note: To properly manage files in Vim, especially when executing changes, you need to know How To Save A File In Vim & Exit and How To Undo And Redo Changes In Vim.
Diagnose Errors Writing to Non-Pipes
To instruct tee to print an error message when the process fails, use the -p argument:
The default action of tee -p is to exit and print the error message immediately upon detecting the error writing to a pipe. To change the command’s behavior on write error, use the —output-error argument, followed by the mode specifying the behavior:
There are four possible modes:
- warn – diagnoses errors writing to any output.
- warn-nopipe – diagnoses errors writing to any non-pipe output.
- exit – exits on errors writing to any output.
- exit-nopipe – exits on errors writing to any non-pipe output.
Use tee Command with Bash Script
The tee command is often found in bash scripts. Consider the following example:
The script above prints the “Hello World” message and stores the output in a log file. Executing the script creates a log file in the tmp folder. The log contains the output of the script:
Watch Log Files
Writing script output to a log file is usually performed with the > operator:
The command above creates a log file but does not write anything to standard output.
Use tee to create a log file and see the output in the terminal:
See Help and Version Information
See the current version of the tee command by typing:
For the instructions regarding the tee command syntax and the available arguments, use the command’s help argument:
By reading this tutorial, you learned how to use the tee command in a pipeline to manage the command output. The article also talked about the use of tee in bash scripts.
Read more about shell commands in this Linux commands cheat sheet.
Источник