tee1 tee2 что это

Команда Tee в Linux с примерами

Linux Tee Command with Examples

В этом руководстве мы рассмотрим основы использования tee команды.

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

Синтаксис команды Tee

Синтаксис tee команды следующий:

Как использовать tee команду

Запись в несколько файлов

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

Добавить в файл

Игнорировать прерывание

Скрыть вывод

Если вы не хотите tee писать в стандартный вывод, вы можете перенаправить его на /dev/null :

Использование тройника в соединении с sudo

Допустим, вы хотите записать файл, который принадлежит пользователю root как пользователь sudo. Следующая команда не будет выполнена, потому что sudo не перенаправляет вывод. Перенаправление выполняется как непривилегированный пользователь.

Вывод будет выглядеть примерно так:

Просто добавьте sudo перед tee командой, как показано ниже:

Использование tee в сочетании с sudo позволяет записывать в файлы, принадлежащие другим пользователям.

Вывод

Команда tee читает из стандартного ввода и записывает его в стандартный вывод и один или несколько файлов.

Источник

Перенаправление ввода/вывода в Linux

Введение

Стандартные потоки ввода и вывода в Linux являются одним из наиболее распространенных средств для обмена информацией процессов, а перенаправление >, >> и | является одной из самых популярных конструкций командного интерпретатора.

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

Требования

Потоки

Стандартный ввод при работе пользователя в терминале передается через клавиатуру.

Стандартный вывод и стандартная ошибка отображаются на дисплее терминала пользователя в виде текста.

Ввод и вывод распределяется между тремя стандартными потоками:

Потоки также пронумерованы:

Из стандартного ввода команда может только считывать данные, а два других потока могут использоваться только для записи. Данные выводятся на экран и считываются с клавиатуры, так как стандартные потоки по умолчанию ассоциированы с терминалом пользователя. Потоки можно подключать к чему угодно: к файлам, программам и даже устройствам. В командном интерпретаторе bash такая операция называется перенаправлением:

Стандартный ввод

Стандартный входной поток обычно переносит данные от пользователя к программе. Программы, которые предполагают стандартный ввод, обычно получают входные данные от устройства типа клавиатура. Стандартный ввод прекращается по достижении EOF (конец файла), который указывает на то, что данных для чтения больше нет.

EOF вводится нажатием сочетания клавиш Ctrl+D.

Рассмотрим работу со стандартным выводом на примере команды cat (от CONCATENATE, в переводе «связать» или «объединить что-то»).

Cat обычно используется для объединения содержимого двух файлов.

Cat отправляет полученные входные данные на дисплей терминала в качестве стандартного вывода и останавливается после того как получает EOF.

Пример

В открывшейся строке введите, например, 1 и нажмите клавишу Enter. На дисплей выводится 1. Введите a и нажмите клавишу Enter. На дисплей выводится a.

Дисплей терминала выглядит следующим образом:

Для завершения ввода данных следует нажать сочетание клавиш Ctrl + D.

Стандартный вывод

Стандартный вывод записывает данные, сгенерированные программой. Когда стандартный выходной поток не перенаправляется в какой-либо файл, он выводит текст на дисплей терминала.

При использовании без каких-либо дополнительных опций, команда echo выводит на экран любой аргумент, который передается ему в командной строке:

Аргументом является то, что получено программой, в результате на дисплей терминала будет выведено:

При выполнении echo без каких-либо аргументов, возвращается пустая строка.

Пример

Команда объединяет три файла: file1, file2 и file3 в один файл bigfile:

Команда cat по очереди выводит содержимое файлов, перечисленных в качестве параметров на стандартный поток вывода. Стандартный поток вывода перенаправлен в файл bigfile.

Стандартная ошибка

Стандартная ошибка записывает ошибки, возникающие в ходе исполнения программы. Как и в случае стандартного вывода, по умолчанию этот поток выводится на терминал дисплея.

Пример

Рассмотрим пример стандартной ошибки с помощью команды ls, которая выводит список содержимого каталогов.

При запуске без аргументов ls выводит содержимое в пределах текущего каталога.

Введем команду ls с каталогом % в качестве аргумента:

В результате должно выводиться содержимое соответствующей папки. Но так как каталога % не существует, на дисплей терминала будет выведен следующий текст стандартной ошибки:

Перенаправление потока

Linux включает в себя команды перенаправления для каждого потока.

Пример

В приведенном примере команда cat используется для записи в файл file1, который создается в результате цикла:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

Если файла file1 не существует, то в текущем каталоге создается новый файл с таким именем.

Для просмотра содержимого файла file1 введите команду:

В результате на дисплей терминала должно быть выведено следующее:

Читайте также:  Что такое клеммы аккумулятора

Для перезаписи содержимого файла введите следующее:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

В результате на дисплей терминала должно быть выведено следующее:

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

Для добавления нового текста к уже существующему в файле с помощью двойных скобок >> выполните команду:

Для завершения цикла нажмите сочетание клавиш Ctrl + D.

Откройте file1 снова и в результате на дисплее монитора должно быть отражено следующее:

Каналы

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

Пример

В результате каждый файл текущего каталога будет размещен на новой строке:

Перенаправлять данные с помощью каналов можно как из одной команды в другую, так и из одного файла к другому, а перенаправление с помощью > и >> возможно только для перенаправления данных в файлах.

Пример

Для сохранения имен файлов, содержащих строку «LOG», используется следующая команда:

Вывод команды dir отсылается в команду-фильтр find. Имена файлов, содержащие строку «LOG», хранятся в файле loglist в виде списка (например, Config.log, Logdat.svd и Mylog.bat).

При использовании нескольких фильтров в одной команде рекомендуется разделять их с помощью знака канала |.

Фильтры

Фильтры представляют собой стандартные команды Linux, которые могут быть использованы без каналов:

Как правило, все нижеприведенные команды работают как фильтры, если у них нет аргументов (опции могут быть):

Если в качестве аргумента передается файл, команда-фильтр считывает данные из этого файла, а не со стандартного потока ввода (есть исключения, например, команда tr, обрабатывающая данные, поступающие исключительно через стандартный поток ввода).

Пример

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

Пример

Допускается перенаправление нескольких потоков в один файл:

В результате сообщение о неверной опции «z» в команде ls будет записано в файл t2, поскольку stderr перенаправлен в файл.

Для просмотра содержимого файла file3 введите команду cat:

В результате на дисплее терминала отобразиться следующее:

Заключение

Мы рассмотрели возможности работы с перенаправлениями потоков >, >> и |, использование которых позволяет лучше работать с bash-скриптами.

Источник

Как и чем создать полный дамп ROM-памяти (резервная копия прошивки и данных) на процессорах МТК с помощью Flash Tool

Описание

Как и чем создать полный дамп ROM-памяти на процессорах МТК с помощью Flash Tool

( создание полной резервной копии и последующее восстановление с этой копии )

Задать вопрос, поделится опытом можно в

Зарядить аппарат не менее чем на 80%.

Заранее подготовить папки в корне диска ( раздела ) на ПК.

В именах папок и пути к ним не должно быть ничего кроме латиницы, цифр и нижнего дефиса.

В данном случае, как пример, взят смартфон Lenovo S1L ( Mediatek MT6753 ).

По аналогии ниже описанных действий Вам нужно брать данные со скаттер-файла своего смартфона ( прошивки ) и так же на своём гаджете использовать Terminal Emulator for Android для вычисления размера полного дампа.

Для исполнения данной команды в этом эмуляторе терминала рут-права не требуются.

Размер полного дампа на устройстве с процессором МТК вычисляется так ( открыть спойлер ).

Запустить приложение Terminal Emulator for Android на Вашем гаджете.

Ввести команду cat /proc/partitions

Приложение отобразит все разделы с памяти устройства количеством блоков в разделе ( один блок = 1024 Байта ).

В строчке mmcblk0 отображена вся память целиком.

Значение со строчки mmcblk0 умножаем на 1024 и получаем размер полного дампа в Байтах.

Переводим полученное значение размера из Dec в Hex и получаем нужное значение для ввода в поле «Length» окна Flash Tool.

На смартфоне Lenovo S1L значение строчки mmcblk0 показало равным 15267840.

15267840 х 1024 = 15634268160 (Dec) = 0x3A3E00000 (Hex).

Для вычислений и перевода из Dec в Hex вполне подойдёт калькулятор с Windows на ПК.

В этом режиме производим умножение.

Далее при полученном результате выбираем Hex ( шестнадцатиричные ).

Калькулятор переведёт значение из Dec в Hex.

Вот это значение (Hex) и есть нужный Вам тот размер полного дампа с Вашего гаджета, который Вы будете указывать в дальнейшем в окне Flash Tool.

На ПК запустить SP Flash Tool ( SP_Flash_Tool_exe_Windows_v5.1548.00.000 или более поздняя версия ).

1. В папке с программой Flash Tool правым кликом по значку flash tool вызвать контекстное меню.

2. Запустить Flash Tool левым кликом по «Запуск от имени администратора». Если Вы на ПК под учётной записью администратора, то можно и просто двойным кликом по значку flash tool запустить программу.

Читайте также:  waves maxxaudio что это за программа и нужна ли она

3. При запуске Flash Tool в первый раз вам выдаст оповещение об отсутствии агента и скаттер-файла в программе. Просто нажмите на «ОК» и откроется стартовое окно программы Flash Tool.

4. Нажать на кнопку «Download Agent».

5. Выбрать папку с программой Flash Tool.

6. В папке выбрать файл «DA_SWSEC.bin».

7. Нажать на кнопку «Открыть».

8. Нажать кнопку «Scatter-loading».

9. Выбрать папку, где находится скаттер-файл с той прошивки, на которой у Вас в данный момент Ваш гаджет.

10. В папке выбрать сам scatter-файл ( выглядит как «MT6753_Android_scatter» с номером Вашего процессора МТК ). Можно выбрать либо из папки с заводской прошивкой для своего аппарата под SP Flash Tool, либо как отдельно сохранённый скаттер-файл. В моём примере скаттер-файл отдельно сохранён в заранее подготовленной папке без всех остальных файлов для установки прошивки с ПК.

11. Нажать на кнопку «Открыть».

13. На вкладке Readback нажать кнопку Add.В списке ниже появится новая строчка.

14. Сделать двойной клик мыши по строчке. Программа предложит выбрать путь и ввести имя файла для сохранения.

15. Указать на компьютере папку где резервная копия полного дампа будет хранится до момента потребности в ней.

16. Задать имя, при этом обязательно оставляем начальные ROM_ в имени и используем только латиницу, цифры и нижний дефис. Дабы в будущем не ломать голову, вспоминая нужные данные старт адреса и длины, я их прописываю в имени через нижний дефис ( пробел, кириллица или иные знаки в имени не допустимы ).

17. Нажать на кнопку «Сохранить».

18. Следом появится окно Readback block start address. Убедиться, что стоит пункт «Hex».

19. В пункте Region выбрать: EMMC_USER (MT6592 и выше).

В строке Start Address ввести нулевое значение 0x0.

В строке Length ввести Вами ранее вычисленное значение размера полного дампа и преведённого в Hex ( в моём примере это значение 0x3A3E00000 ).

20. Нажать на кнопку «ОК».

21. Проверить и удостовериться, что введены правильные значения во всех столбцах.

22. Нажать на кнопку «Read Back».

Далее после нажатия на «Read Back» аккуратно, одним разом без перетыканий подсоединяем выключенный гаджет к ПК по USB и тут же оставляем гаджет без перекладываний, переворачиваний и тому подобных физических воздействий как на него, так и на ПК.

Процесс сливания дампа начнётся сразу же после подсоединения гаджета по USB.

На гаджетах с не съёмными аккумуляторами может присутствовать кнопка «reset», как например на смартфоне Lenovo P780.

Такая кнопка служит аналогом вытаскивания-вставки аккумулятора.

В этом случае нажмите эту кнопку на пару секунд и отпустите её перед подсоединением к ПК.

Дальнейшие действия с 23-го по 29-е будут производиться без Вашего участия :

23. Сразу после подсоединения выключенного гаджета по USB к ПК и успешного срабатывания драйверов в Диспетчере устройств на ПК должен определиться подсоединённый выключенный гаджет, как MediaTek Preloader USB VCOM (Android) (COMx) ( в моём случае как COM4 ) и так же отразиться в нижнем ряду окна Flash Tool.

24. Пробежит красная полоса «Download DA 100%».

25. В окне Flash Tool слева внизу под картинкой отобразится информация по чипу с Вашего гаджета.

26. В нижнем ряду окна Flash Tool (слева направо) начнётся отсчёт размера слитого дампа в Мб и далее после 1000 Мб в Гб, скорость сливания в Мб/сек, текущее время, объём уже слитого дампа в процентах и постепенное заполнение шкалы синим цветом.

27. По окончании сливания дампа шкала будет заполнена синим цветом полностью, там же на шкале надпись достигнет «Read back 100%».

28. Появится небольшое окошко «Read back Ok».

29. Flash Tool автоматически программно отключит подсоединённый гаджет, в Диспетчере устройств на ПК исчезнет строчка «MediaTek Preloader USB VCOM (Android) (COMx)».

После записи одного только слитого полного дампа на устройство на процессорах МТ67хх, оно у Вас не включится.

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

Следовательно нам необходимо слить кусок дампа с разделов tee1 и tee2.

А для этого нам нужны Start Address и Length.

Следовать нижеописанному ( открыть спойлер ).

И так же по аналогии всех действий сливания полного дампа, следом, отсоединив выключенный смартфон от ПК после сливания полного дампа, приступаем к сливанию куска дампа с разделов tee1 и tee2 суммарно, начиная вводить полученные значения Start Addres и Length на шаге 16 и далее ( выше по скриншотам ).

Читайте также:  анунак что это такое

Запустить тот же Terminal Emulator for Android на Вашем гаджете.

Ввести команду cat /proc/emmc

Ну, и в заключение, здесь под спойлером видеоролик всего, что описано выше ( сливание полного дампа и куска дампа tee1+tee2, а так же создание и сохранение контрольных файлов хеш-сумм слитых дампов ).

Для нормальной видимости всего шрифта в видеоролике выберите в просмотре качество 720р.

Ниже видеоролик записи слитого дампа обратно на смартфон ( восстановление с состояния полного окирпичивания )

Источник

Команда tee Linux

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

Суть ее работы можно описать заглавной буквой T — команда tee linux принимает данные из одного источника и может сохранять их на выходе в нескольких местах. То, как она может использоваться в Linux, хорошо видно на нескольких примерах, которые приведены ниже.

Синтаксис команды tee

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

$ tee опции файл

Для сохранения вывода команды можно передать один или несколько файлов.

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

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

Здесь первая команда показала вывод списка файлов в текущем каталоге в терминал и записала полученные данные в файл вывод.txt

Вторая команда показала содержимое файла вывод.txt

2. Добавление вывода в существующий файл

Если вывод любой команды записать в существующий файл с применением команды tee и операции -a, содержимое файла не будет перезаписано. Здесь вывод команды pwd будет добавлен в конец файла вывод.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. Выполните следующие команды в терминале.

Здесь первая команда считает количество строчек в файле вывод.txt и сохраняет полученный результат в файл вывод3.txt Вторая команда показывает содержимое файла вывод.txt, который содержит 37 строчек. Третья команда показывает содержимое файла вывод3.txt, в котором указано, что он действительно содержит 37 строчек.

5. Перенос вывода команды tee в другую команду

Вывод команды tee может быть перенесен в другую команду. В этом примере вывод из первой команды переносится в tee, а ее вывод — в другую команду. Запустите следующие команды в терминале:

Здесь первая команда используется для записи вывода ls в файл вывод4.txt и подсчета общего числа строк, слов и символов в файле вывод4.txt Вторая команда используется для отображения вывода команды ls, а третья — для отображения содержимого файла вывод4.txt

6. Команда tee и скрипты

Команда tee также может использоваться для записи вывода bash-скрипта в файл. Создайте bash-файл с приведенным кодом, который возьмет два входных числа из аргументов командной строки и выведет сумму этих чисел. Команда tee используется в этом примере для записи вывода add.sh в файл результат.txt

Запустите следующую команду в терминале для записи файла и отображения его содержимого.

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 в наиболее распространенных случаях хорошо показано в этой инструкции с примерами. Надеемся, читателю будут полезны приведенные упражнения.

Источник

Информ портал о технике и не только