Linux команди

Linux тръбна команда

Linux тръбна команда
Тази команда „pipe“ е лесно достъпна на UNIX / Linux платформи. Тази команда насочва изхода на предишната команда към следващата команда. Има буквално ТОНИ ситуации, при които този метод предлага сериозна стойност.Преди да скочите по-дълбоко, има какво да знаете. Всяка отделна програма в системата UNIX / Linux има 3 вградени потока от данни.

Когато ще работим с трикове "pipe", "pipe" ще вземе STDOUT на команда и ще го предаде на STDIN на следващата команда.

Нека да разгледаме някои от най-често срещаните начини, по които можете да включите командата „pipe“ във вашето ежедневно използване.

Тръбна команда

Основна употреба

По-добре е да разгледате метода на работа на „тръбата“ с жив пример, нали? Да започваме. Следващата команда ще каже на „pacman“, мениджъра на пакети по подразбиране за Arch и всички дистрибуции, базирани на Arch, да отпечата всички инсталирани пакети в системата.

pacman -Qqe

Това е наистина ДЪЛЪГ списък с пакети. Какво ще кажете за това да вземете само няколко компонента? Можем да използваме „grep“. Но как? Един от начините би бил изхвърлянето на изхода към временен файл, “grep” на желания изход и изтриване на файла. Тази поредица от задачи сама по себе си може да се превърне в скрипт. Но ние правим сценарии само за много големи неща. За тази задача нека се позовем на силата на „тръбата“!

pacman -Qqe | grep

Страхотно, нали? „|“ знак е извикването на командата “pipe”. Той хваща STDOUT от лявата секция и го подава в STDIN от дясната секция.

В гореспоменатия пример, командата “pipe” всъщност предава изхода в края на частта “grep”. Ето как се играе.

pacman -Qqe> ~ / Desktop / pacman_package.текст
grep python ~ / Desktop / 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 | намирам ./ -тип f -name "*.txt "-exec grep 00110011 \;

Това е доста усукана команда, нали? Отначало “ls” извежда списъка с всички файлове в директорията. Инструментът „намери“ взема резултата, търси „.txt “файлове и извиква„ grep “за търсене на„ 00110011 “. Тази команда ще провери всеки отделен текстов файл в директорията с разширение TXT и ще потърси съвпаденията.

Отпечатайте съдържанието на файл от определен диапазон

Когато работите с голям файл, обикновено е необходимо да проверявате съдържанието на определен диапазон. Можем да направим точно това с хитро комбинация от „котка“, „глава“, „опашка“ и разбира се, „тръба“. Инструментът „head“ извежда първата част на съдържанието, а „tail“ извежда последната част.

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

котка | опашка -6

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

Когато работите с дублирани изходи, това може да бъде доста досадно. Понякога дублираното въвеждане може да причини сериозни проблеми. В този пример нека хвърлим “uniq” върху поток от текст и го запишем в отделен файл.

Например, тук е текстов файл, съдържащ голям списък с числа, които са с 2 цифри. Тук определено има дублирано съдържание, нали?

котен дубликат.txt | вид

Сега, нека извършим процеса на филтриране.

котен дубликат.txt | сортиране | uniq> уникален.текст

Вижте резултата.

прилеп уникален.текст

Изглежда по-добре!

Тръби за грешки

Това е интересен метод за тръбопроводи. Този метод се използва за пренасочване на STDERR към STDOUT и продължаване с тръбопроводите. Това се обозначава със символа „| &” (без кавичките). Например, нека създадем грешка и изпратим изхода на друг инструмент. В този пример аз просто написах някаква случайна команда и предадох грешката на „grep“.

adsfds | & grep n

Финални мисли

Докато самата „тръба“ е доста опростена по своя характер, начинът, по който работи, предлага много гъвкав начин за използване на метода по безкрайни начини. Ако се интересувате от скриптове на Bash, това е много по-полезно. Понякога можете просто да правите безумни неща направо! Научете повече за Bash скриптове.

Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...