Команды Linux

Команда канала Linux

Команда канала Linux
Эта команда «pipe» легко доступна на платформах UNIX / Linux. Эта команда передает вывод предыдущей команды следующей команде. Есть буквально МНОЖЕСТВО ситуаций, когда этот метод имеет серьезную ценность.Прежде чем прыгнуть глубже, есть кое-что, что нужно знать. Каждая программа в системе UNIX / Linux имеет 3 встроенных потока данных.

Когда мы собираемся работать с уловками «pipe», «pipe» возьмет STDOUT команды и передаст его в STDIN следующей команды.

Давайте рассмотрим некоторые из наиболее распространенных способов включения команды «pipe» в повседневное использование.

Команда трубы

Основное использование

О способе работы «трубы» лучше подробно рассказать на живом примере, не так ли?? Давайте начнем. Следующая команда скажет «pacman», менеджеру пакетов по умолчанию для Arch и всех дистрибутивов на основе Arch, распечатать все установленные пакеты в системе.

pacman -Qqe

Это действительно ДЛИННЫЙ список пакетов. Как насчет того, чтобы собрать всего несколько компонентов? Мы могли бы использовать «grep». Но как? Один из способов - сбросить вывод во временный файл, "grep" желаемый результат и удалить файл. Саму по себе эту серию задач можно превратить в скрипт. Но мы пишем только для очень больших вещей. Для этого воспользуемся мощью «трубы»!

pacman -Qqe | grep

Отлично, не правда ли?? Знак «|» знак - это вызов команды «труба». Он берет STDOUT из левого раздела и передает его в STDIN из правого раздела.

В вышеупомянутом примере команда «pipe» фактически передала вывод в конце части «grep». Вот как это происходит.

pacman -Qqe> ~ / Рабочий стол / pacman_package.текст
grep python ~ / Рабочий стол / pacman_package.текст

Многоканальная обвязка

По сути, в расширенном использовании команды «pipe» нет ничего особенного. Это полностью зависит от вас, как его использовать.

Например, начнем с укладки нескольких трубопроводов.

pacman -Qqe | grep p | grep t | grep py

Выходные данные команды pacman фильтруются все дальше и дальше с помощью grep через серию конвейеров.

Иногда, когда мы работаем с содержимым файла, оно может быть действительно очень большим. Найти правильное место для желаемой записи может быть сложно. Давайте поищем все записи, которые включают цифры 1 и 2.

кошка демо.txt | grep -n 1 | grep -n 2

Управление списком файлов и каталогов

Что делать, если вы имеете дело с каталогом, в котором находится ТОННА файлов? Прокручивать весь список довольно утомительно. Конечно, почему бы не сделать его более терпимым с помощью трубы? В этом примере давайте проверим список всех файлов в папке «/ usr / bin».

ls -l | более

Здесь «ls» выводит все файлы и их информацию. Затем «pipe» передает его «more» для работы с этим. Если вы не знали, «еще» - это инструмент, который превращает тексты в одно экранное представление за раз. Однако это старый инструмент, и, согласно официальной документации, более рекомендуется «меньше».

ls -l / usr / bin | меньше

Сортировка вывода

Есть встроенный инструмент «сортировка», который принимает вводимый текст и сортирует их. Этот инструмент - настоящая жемчужина, если вы работаете с чем-то действительно грязным. Например, у меня есть этот файл, полный случайных строк.

кошка демо.текст

Просто направьте его на «сортировку».

кошка демо.txt | Сортировать

Так-то лучше!

Печать спичек определенного рисунка

ls -l | найти ./ -type f -name "*.txt "-exec grep 00110011 \;

Это довольно запутанная команда, верно? Сначала «ls» выводит список всех файлов в каталоге. Инструмент «найти» берет результат и выполняет поиск по запросу «.txt »и вызывает« grep »для поиска« 00110011 ». Эта команда проверит каждый текстовый файл в каталоге с расширением TXT и найдет совпадения.

Распечатать содержимое файла определенного диапазона

Когда вы работаете с большим файлом, часто возникает необходимость проверки содержимого определенного диапазона. Мы можем сделать это с помощью умной комбинации «кота», «головы», «хвоста» и, конечно же, «трубы». Инструмент «голова» выводит первую часть контента, а «хвост» - последнюю часть.

Кот | голова -6

Кот | хвост -6

Уникальные ценности

При работе с дублирующимися выходами это может сильно раздражать. Иногда дублирующийся ввод может вызвать серьезные проблемы. В этом примере давайте добавим «uniq» к потоку текста и сохраним его в отдельный файл.

Например, вот текстовый файл, содержащий большой список чисел, состоящих из двух цифр. Здесь определенно дублированное содержимое, верно?

кошка дубликат.txt | Сортировать

Теперь приступим к процессу фильтрации.

кошка дубликат.txt | сортировать | uniq> уникальный.текст

Проверить результат.

летучая мышь уникальная.текст

Выглядит лучше!

Ошибка трубы

Это интересный метод обвязки. Этот метод используется для перенаправления STDERR в STDOUT и продолжения работы с трубопроводом. Обозначается символом «| &» (без кавычек). Например, давайте создадим ошибку и отправим результат в какой-нибудь другой инструмент. В этом примере я просто набрал случайную команду и передал ошибку в «grep».

adsfds | & grep n

Последние мысли

Хотя «труба» сама по себе довольно упрощена, способ ее работы предлагает очень универсальный способ использования метода бесконечным количеством способов. Если вы занимаетесь написанием сценариев на Bash, то это намного полезнее. Иногда вы можете просто делать сумасшедшие вещи прямо! Узнать больше о сценариях Bash.

Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...
5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...