Jump to content

тройник (команда)

тройник
Разработчик(и) AT&T Bell Laboratories , Майк Паркер, Ричард Столлман , Дэвид Маккензи, Microware , Джим Холл , JP Software , Microsoft
Первоначальный выпуск июнь 1974 г .; 50 лет назад ( 1974-06 )
Написано в С
Операционная система Unix , Unix-подобные , Plan 9 , Inferno , OS-9 , FreeDOS , Windows , ReactOS , IBM i
Платформа Кросс-платформенный
Тип Команда
Лицензия FreeDOS: GPL-2.0 или новее.
РеактОС: GPLv2.
План 9: МОЯ лицензия

В вычислениях, tee — это команда в интерпретаторах командной строки ( оболочках ), использующая стандартные потоки , которая считывает стандартный ввод и записывает его как в стандартный вывод, так и в один или несколько файлов, эффективно дублируя ввод. [1] В основном используется в сочетании с трубами и фильтрами . Команда названа в честь Т-образного разветвителя, используемого в сантехнике . [2]

Пример использования тройника : вывод ls -l перенаправляется на tee , который копирует их в файл file.txt и на пейджер. less. Название тройника происходит от этой схемы — оно похоже на заглавную букву Т.

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

Реализации

[ редактировать ]

Команда доступна для Unix и Unix-подобных операционных систем , Microware OS-9 , [3] DOS (например, 4DOS , FreeDOS ), Microsoft Windows (например, 4NT , Windows PowerShell ) и ReactOS . [4] Linux tee Команда была написана Майком Паркером, Ричардом Столлманом и Дэвидом Маккензи. [5] Команда доступна в виде отдельного пакета для Microsoft Windows как часть UnxUtils коллекции , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [6] Версия FreeDOS была разработана Джимом Холлом и распространяется под лицензией GPL . [7] Команда tee также была перенесена в операционную систему IBM i . [8]

Кроме того, sponge[9] Команда предлагает аналогичные возможности.

Unix и Unix-подобные

[ редактировать ]
tee [ -a ] [ -i ] [ File ... ]

Аргументы:

  • File ... Список файлов, каждый из которых получает выходные данные.

Флаги:

  • -a Добавляет вывод к каждому файлу, а не перезаписывает его.
  • -i Игнорирует прерывания.

Команда возвращает следующие значения выхода ( статус выхода ):

  • 0 Стандартный ввод успешно скопирован во все выходные файлы.
  • >0 Произошла ошибка.

Использование подстановки процессов позволяет нескольким процессам читать стандартный вывод исходного процесса. Прочтите этот пример из GNU Coreutils, вызов tee .

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

TEE [/A] file...

Аргументы:

  • file Один или несколько файлов, которые получат вывод «tee'd».

Флаги:

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

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

Windows PowerShell

[ редактировать ]
tee [-FilePath] <String> [-InputObject <PSObject>]
tee -Variable <String> [-InputObject <PSObject>]

Аргументы:

  • -InputObject <PSObject> Указывает ввод объекта в командлет. Параметр принимает переменные, содержащие объекты, а также команды или выражения, возвращающие объекты.
  • -FilePath <String> Указывает файл, в котором командлет сохраняет объект. Параметр принимает подстановочные знаки , которые относятся к одному файлу.
  • -Variable <String> Указанной переменной будет присвоена ссылка на входные объекты.

Примечание: тройник реализован как ReadOnly псевдоним команды . Внутреннее имя командлета: Microsoft.PowerShell.Utility\Tee-Object.

Unix и Unix-подобные

[ редактировать ]
  • просмотреть и сохранить выходные данные команды ( lint ): Чтобы одновременно
lint program.c | tee program.lint

Это отображает стандартный вывод команды lint program.c на компьютере, и при этом сохраняет его копию в файл program.lint. Если файл с именем program.lint уже существует, он удаляется и заменяется.

Аналогично, потоки вывода stdout и stderr могут быть перенаправлены на стандартный вывод, а поток вывода — stderr. program.lint используя перенаправление потока:

lint program.c 2>&1 | tee program.lint
  • Чтобы просмотреть и добавить вывод команды в существующий файл:
lint program.c | tee -a program.lint

Это отображает стандартный вывод lint program.c команду на компьютере и в то же время добавляет ее копию в конец program.lint файл. Если program.lint файл не существует, он создан.

  • Чтобы разрешить повышение разрешений:
cat ~/.ssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"

В этом примере показано, как tee используется для обхода внутреннего ограничения команды sudo . sudo не может передать стандартный вывод в файл. Выгружая поток stdout в /dev/null, мы также подавляем зеркальный вывод в консоли. Приведенная выше команда предоставляет текущему пользователю root-доступ к серверу через ssh путем установки открытого ключа пользователя в список авторизации ключей сервера.

В Bash вывод можно фильтровать перед записью в файл, не влияя на отображаемый вывод, с помощью подстановки процесса . Например,

ls --color=always | tee >(sed "s/\x1b[^m]*m//g" > ls.txt)

удаляет общие escape-коды ANSI перед записью в ls.txt, но сохраняет их для отображения. [10]

В этом примере выполняется поиск файла wikipedia.txt для любых строк, содержащих строку « 4DOS », делает копию соответствующих строк в 4DOS.txt, сортирует строки и записывает их в выходной файл 4DOSsorted.txt:

>find "4DOS" wikipedia.txt | tee 4DOS.txt | sort > 4DOSsorted.txt

Windows PowerShell

[ редактировать ]
  • Чтобы одновременно просмотреть и сохранить выходные данные команды:
ipconfig | tee OutputFile.txt

Это отображает стандартный вывод команды ipconfig в окне консоли и одновременно сохраняет его копию в файле OutputFile.txt.

  • Для отображения и сохранения всех запущенных процессов только программы, начинающиеся с svc и имеющие более 1000 дескрипторов : , отфильтрованных так, чтобы выдавались
Get-Process | Where-Object { $_.Name -like "svc*" } | Tee-Object ABC.txt | Where-Object { $_.Handles -gt 1000 }

В этом примере показано, что передаваемые по конвейеру входные данные для tee можно фильтровать и что tee используется для отображения этих выходных данных, которые снова фильтруются, чтобы отображались только процессы, имеющие более 1000 дескрипторов, и записывают нефильтрованные выходные данные в файл. ABC.txt.

  • Windows Powershell не подходит для двоичных и необработанных данных, всегда обрабатывает поток как текст и изменяет данные по мере их передачи.

См. также

[ редактировать ]
  1. ^ «Страница руководства для тройника (posix, раздел 1)» . IEEE Std 1003.1, издание 2003 г., Стандарт информационных технологий — интерфейс переносимой операционной системы (POSIX), базовые спецификации открытой группы, выпуск 6 . Проверено 1 декабря 2013 г.
  2. ^ «Что в Unix означают некоторые непонятно названные команды?» . Проверено 3 февраля 2012 г.
  3. ^ Пол С. Даян (1992). OS-9 Guru-1: Факты . Галактика Индастриал Лимитед. ISBN  0-9519228-0-7 .
  4. ^ «реактос/реактос» . Гитхаб . 3 января 2022 г.
  5. ^ «tee: чтение со стандартного ввода и запись в стандартный вывод и файлы» . www.mankier.com .
  6. ^ «Собственные порты Win32 некоторых утилит GNU» . unxutils.sourceforge.net .
  7. ^ «Пакет ibiblio.org FreeDOS — тройник (Unix-подобный)» . www.ibiblio.org .
  8. ^ ИБМ . «IBM System i Версия 7.2 Программирование Qshell» (PDF) . ИБМ . Проверено 5 сентября 2020 г.
  9. ^ «губка(1): впитывать стандартный ввод/записывать в файл — справочная страница Linux» . linux.die.net .
  10. ^ «GNU Coreutils: вызов тройника» . Проверено 3 февраля 2016 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 83378aa43345b7b2488fa1ba79d96cd5__1696750320
URL1:https://arc.ask3.ru/arc/aa/83/d5/83378aa43345b7b2488fa1ba79d96cd5.html
Заголовок, (Title) документа по адресу, URL1:
tee (command) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)