Что такое пайп в линукс
В операционных системах на базе Linux Pipe — это тип перенаправления, используемый для передачи стандартного вывода одной команды в место назначения или другую команду. Он используется для отправки вывода одного процесса, программы или команды другому процессу, программе или команде для дополнительной обработки. Системы Linux позволяют соединять стандартный вывод или стандартный вывод команды со стандартным вводом или стандартным вводом другой команды. В Linux каналы представлены с помощью символа канала «|».
Канал соединяет два или более процессов, программ или команд в течение ограниченного времени. Для дополнительной обработки в системе Linux используется программа командной строки, известная как фильтры. Прямое соединение, которое создается между несколькими процессами, командами и программами, позволяет им работать одновременно. Однако каналы также позволяют передавать данные между собой без использования экрана дисплея или временных текстовых файлов.
Как работают каналы в Linux
Данные перемещаются слева направо по каналам, поэтому каналы являются однонаправленными. Использование каналов в терминале Linux имеет много преимуществ. Вы можете сгруппировать многочисленные программы, используя конвейеры для создания очень мощных команд. Большинство программ командной строки поддерживают несколько режимов работы. Эти программы могут записывать и читать данные в файлы и принимать стандартный вывод и ввод. Этот оператор объявляет, что выходные данные одной программы могут быть использованы в качестве входных данных для другой. Затем вы можете отправить вывод второй программы в качестве ввода третьей программе или сохранить его в файл. Так работают каналы в операционной системе на базе Linux.
Синтаксис каналов в Linux
Символ вертикальной черты «|» используется для добавления вертикальной черты в команду. Общий синтаксис каналов в Linux выглядит следующим образом:
Напишите first_command в терминале; затем укажите символ вертикальной черты «|». После этого добавьте second_command. До этого момента канал будет отправлять стандартный вывод first_command в качестве ввода для second_command. Pipes можно использовать для создания цепочки команд. Однако функциональность каналов останется во всей цепочке команд.
Как использовать каналы в Linux
В терминале Linux каналы представлены с помощью символа канала «|». Теперь мы напишем несколько команд, включающих каналы, чтобы на практике объяснить работу каналов в Linux.
Примечание: для демонстрации примеров каналов мы используем Ubuntu 20.04. Однако каналы работают одинаково во всех системах на базе Linux.
Как использовать канал для отправки списка файлов и каталогов в команду «больше» в Linux
В этом примере мы будем использовать канал между командами «ls» и «more». Команда «ls» используется для вывода списка каталогов и файлов, а опция «-l» добавляется для их вывода в длинном формате. Принимая во внимание, что команда «more» будет отображать список с возможностью прокрутки, по одному экрану за раз:
Выполнение указанной выше команды отправит список файлов и каталогов в качестве входных данных для команды «more» с использованием канала «|»:
Теперь нажмите «Enter», чтобы просмотреть список дополнительных каталогов и файлов:
Как использовать канал для отделения файлов от списка всех файлов и каталогов в Linux
Канал также предоставляет вам возможность отделять и перечислять определенные файлы из списка. Для этого вы можете использовать команду «ls» для вывода списка файлов и команду «grep» для поиска по определенному шаблону и добавить «| ” символ конвейера между этими командами.
В приведенном ниже примере символ вертикальной черты отправит список файлов и каталогов команде «grep». Затем команда grep извлечет файл с шаблоном «txt»:
Как использовать канал для подсчета количества определенных файлов из списка всех файлов и каталогов в Linux
Вы можете использовать каналы для создания цепочки команд. Эта цепочка команд выполняется сразу в терминале Linux. Например, мы можем расширить ранее выполненную команду, добавив канал и команду «wc». Второй канал отправит вывод команды «grep» в «wc».
Вывод команды распечатает общее количество файлов, содержащих шаблон «txt»:
Как использовать канал для сортировки файла и печати его уникальных значений в Linux
Если вы хотите отсортировать файл, а затем распечатать его уникальные значения в терминале, выполните приведенную ниже команду:
Здесь команда «sort» используется для сортировки файла «sampletest1.txt». Труба «|» отправляет выходные данные команды «sort» в «uniq». Затем команда «uniq» отфильтрует повторяющиеся значения:
Как использовать канал для получения определенных данных в Linux
Вы можете использовать канал «|» между командой cat и grep. Команда «cat» будет извлекать данные из «sampletest1.txt», тогда как команда «grep» будет искать « >U в содержимом файла sampletest1.txt. Для дальнейшей обработки канал «|» отправит вывод команды «cat» в «grep»:
Вывод покажет вам текст с буквой «U»:
Как использовать канал для печати строк файла в определенном диапазоне в Linux
Команды «head» и «tail» используются для вывода первой и последней части файла. В этом примере мы будем использовать канал «|» для получения данных файла «sampletest2.txt», полученных в результате выполнения команды «cat». а затем передать его командам «head» и «tail» в качестве входных данных:
Он покажет вам приведенный ниже вывод:
Заключение
В системах на базе Linux канал используется для объединения двух или более команд таким образом, что вывод одной команды передается в качестве ввода другой. «| Символ ” указывает на оператора трубы. С помощью оператора канала каждый вывод процесса напрямую передается в качестве ввода следующей команды. В этом посте вы узнали, что такое оператор канала в Linux. Кроме того, мы также продемонстрировали различные примеры, связанные с каналами в системе Linux.