Linux naredbe

Linux pipe naredba

Linux pipe naredba
Ova naredba "pipe" lako je dostupna na UNIX / Linux platformama. Ova naredba usmjerava izlaz prethodne naredbe na sljedeću naredbu. Postoje doslovno TONS situacija u kojima ova metoda nudi ozbiljnu vrijednost.Prije skoka dublje, treba nešto znati. Svaki pojedini program u UNIX / Linux sustavu ima 3 ugrađena toka podataka.

Kada ćemo raditi s trikovima "pipe", "pipe" će uzeti naredbu STDOUT i proslijediti je STDIN-u sljedeće naredbe.

Provjerimo neke od najčešćih načina na koje možete uključiti naredbu "pipe" u svoju svakodnevnu upotrebu.

Naredba cijevi

Osnovna upotreba

Bolje je elaborirati način rada "cijevi" na primjeru uživo, zar ne? Započnimo. Sljedeća naredba reći će “pacmanu”, zadanom upravitelju paketa za Arch i sve distro-ove bazirane na Archu, da ispiše sve instalirane pakete na sustavu.

pacman -Qqe

To je stvarno DUGA lista paketa. Kako bi bilo, pokupiti samo nekoliko komponenata? Mogli bismo upotrijebiti "grep". Ali kako? Jedan od načina bio bi izbacivanje izlaza u privremenu datoteku, "grep" željenog izlaza i brisanje datoteke. Ova serija zadataka, sama po sebi, može se pretvoriti u skriptu. Ali skripte radimo samo za vrlo velike stvari. Za ovaj zadatak, pozovimo snagu "cijevi"!

pacman -Qqe | grep

Sjajno, zar ne? "|" znak je poziv naredbi "pipe". Dohvaća STDOUT s lijevog dijela i ubacuje ga u STDIN desnog dijela.

U gore spomenutom primjeru, naredba "pipe" zapravo je proslijedila izlaz na kraju dijela "grep". Evo kako se to odvija.

pacman -Qqe> ~ / Desktop / pacman_package.txt
grep python ~ / Desktop / pacman_package.txt

Višestruki cjevovodi

U osnovi, nema ništa posebno s naprednom uporabom naredbe "pipe". O vama ovisi kako ćete ga koristiti.

Na primjer, započnimo slaganjem više cjevovoda.

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

Izlaz naredbe pacman filtrira se dalje i dalje pomoću "grep" kroz seriju cjevovoda.

Ponekad, kada radimo sa sadržajem datoteke, on može biti jako, jako velik. Pronaći pravo mjesto željenog ulaska može biti teško. Potražimo sve unose koji uključuju znamenke 1 i 2.

mačka demo.txt | grep -n 1 | grep -n 2

Manipuliranje popisom datoteka i direktorija

Što učiniti kad imate posla s direktorijom u kojem je TONA datoteka? Prilično je dosadno pomicati se kroz cijeli popis. Naravno, zašto to ne biste učinili podnošljivijim s cijevi? U ovom primjeru provjerimo popis svih datoteka u mapi “/ usr / bin”.

ls -l | više

Ovdje "ls" ispisuje sve datoteke i njihove podatke. Zatim, "cijev" je prosljeđuje na "više" za rad s tim. Ako niste znali, "više" je alat koji pretvara tekstove u jedan zaslon. Međutim, to je stari alat i prema službenoj dokumentaciji više se preporučuje "manje".

ls -l / usr / bin | manje

Sortiranje rezultata

Postoji ugrađeni alat za sortiranje koji će unositi tekst i razvrstati ih. Ovaj je alat pravi dragulj ako radite s nečim stvarno neurednim. Na primjer, dobio sam ovu datoteku punu slučajnih nizova.

mačka demo.txt

Dovoljno je cijeviti ga da se "sortira".

mačka demo.txt | vrsta

Tako je bolje!

Ispis šibica određenog uzorka

ls -l | pronaći ./ -tip f -ime "*.txt "-exec grep 00110011 \;

Ovo je prilično izvrnuta naredba, zar ne? Isprva "ls" daje popis svih datoteka u direktoriju. Alat "pronađi" uzima izlaz, traži ".txt “i poziva„ grep “za traženje„ 00110011 “. Ova će naredba provjeriti svaku pojedinu tekstualnu datoteku u direktoriju s TXT nastavkom i potražiti podudaranja.

Ispis sadržaja datoteke određenog raspona

Kada radite s velikom datotekom, uobičajeno je imati potrebu za provjerom sadržaja određenog raspona. Upravo to možemo učiniti pametnom kombinacijom "mačka", "glava", "rep" i naravno "cijev". Alat "glava" daje prvi dio sadržaja, a "rep" zadnji dio.

mačka | glava -6

mačka | rep -6

Jedinstvene vrijednosti

Kada radite s dvostrukim izlazima, to može biti prilično neugodno. Ponovljeni unos ponekad može uzrokovati ozbiljne probleme. U ovom primjeru, bacimo “uniq” na tok teksta i spremimo ga u zasebnu datoteku.

Na primjer, ovdje je tekstualna datoteka koja sadrži veliki popis brojeva koji imaju 2 znamenke. Ovdje definitivno postoje duplicirani sadržaji, zar ne?

mačka duplikat.txt | vrsta

Izvršimo sada postupak filtriranja.

mačka duplikat.txt | razvrstaj | uniq> jedinstven.txt

Pogledajte izlaz.

šišmiš jedinstven.txt

Izgleda bolje!

Cijevi za pogreške

Ovo je zanimljiva metoda cjevovoda. Ovom se metodom STDERR preusmjerava na STDOUT i nastavlja se s cjevovodima. Označava se simbolom "| &" (bez navodnika). Na primjer, stvorimo pogrešku i pošaljemo izlaz nekom drugom alatu. U ovom sam primjeru samo otkucao slučajnu naredbu i prenio grešku na "grep".

adsfds | & grep n

Završne misli

Iako je sama „cijev“ po svojoj prirodi prilično pojednostavljena, način rada nudi vrlo svestran način korištenja metode na beskonačne načine. Ako se bavite skriptanjem Basha, to je puno korisnije. Ponekad jednostavno možeš izravno raditi lude stvari! Saznajte više o skripti za Bash.

Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...