Comenzi Linux

Comandă conductă Linux

Comandă conductă Linux
Această comandă „pipe” este disponibilă pe platformele UNIX / Linux. Această comandă canalizează ieșirea comenzii anterioare la următoarea comandă. Există literalmente TONE de situații în care această metodă oferă o valoare serioasă.Înainte de a sări mai adânc, trebuie să știm ceva. Fiecare program din sistemul UNIX / Linux are 3 fluxuri de date încorporate.

Când vom lucra cu trucuri „pipe”, „pipe” va lua STDOUT-ul unei comenzi și îl va trece la STDIN-ul comenzii următoare.

Să vedem câteva dintre cele mai comune moduri în care puteți încorpora comanda „pipe” în utilizarea zilnică.

Comandă conductă

Utilizare de bază

Este mai bine să detaliați metoda de lucru a „pipei” cu un exemplu viu, corect? Să începem. Următoarea comandă va spune „pacman”, managerul de pachete implicit pentru Arch și toate distribuitoarele bazate pe Arch, să tipărească toate pachetele instalate pe sistem.

pacman -Qqe

Este o listă foarte lungă de pachete. Ce zici de a prelua doar câteva componente? Am putea folosi „grep”. Dar cum? O modalitate ar fi să descărcați ieșirea într-un fișier temporar, să „grep” rezultatul dorit și să ștergeți fișierul. Această serie de sarcini, de la sine, poate fi transformată într-un script. Dar scriem doar lucruri foarte mari. Pentru această sarcină, să apelăm la puterea „țevii”!

pacman -Qqe | grep

Minunat, nu-i așa?? „|” semn este apelul la comanda „pipe”. Apucă STDOUT din secțiunea din stânga și îl alimentează în STDIN din secțiunea din dreapta.

În exemplul menționat mai sus, comanda „pipe” a trecut de fapt rezultatul la sfârșitul părții „grep”. Iată cum se desfășoară.

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

Conducte multiple

Practic, nu este nimic special cu utilizarea avansată a comenzii „pipe”. Depinde complet de tine să îl folosești.

De exemplu, să începem prin stivuirea mai multor conducte.

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

Ieșirea comenzii pacman este filtrată din ce în ce mai mult prin „grep” printr-o serie de conducte.

Uneori, când lucrăm cu conținutul unui fișier, acesta poate fi foarte, foarte mare. Găsirea locului potrivit pentru intrarea noastră dorită poate fi dificilă. Să căutăm toate intrările care includ cifrele 1 și 2.

demo pentru pisici.txt | grep -n 1 | grep -n 2

Manipularea listei de fișiere și directoare

Ce trebuie să faceți atunci când aveți de-a face cu un director cu TONE de fișiere? Este destul de enervant să parcurgi întreaga listă. Sigur, de ce să nu-l fac mai suportabil cu țeava? În acest exemplu, să verificăm lista tuturor fișierelor din folderul „/ usr / bin”.

ls -l | Mai mult

Aici, „ls” tipărește toate fișierele și informațiile lor. Apoi, „pipe” îl trece la „more” pentru a lucra cu asta. Dacă nu știați, „mai mult” este un instrument care transformă textele într-o singură vizualizare ecranată la un moment dat. Cu toate acestea, este un instrument vechi și, conform documentației oficiale, „mai puțin” este mai recomandat.

ls -l / usr / bin | Mai puțin

Sortarea ieșirii

Există un instrument „sortare” încorporat care va prelua introducerea textului și le va sorta. Acest instrument este o adevărată bijuterie dacă lucrați cu ceva cu adevărat dezordonat. De exemplu, am obținut acest fișier plin de șiruri aleatorii.

demo pentru pisici.txt

Pur și simplu puneți-l la „sortare”.

demo pentru pisici.txt | fel

Asa e mai bine!

Tipărirea chibriturilor unui anumit model

ls -l | găsi ./ -tip f -name "*.txt "-exec grep 00110011 \;

Aceasta este o comandă destul de răsucită, corect? La început, „ls” afișează lista tuturor fișierelor din director. Instrumentul „găsi” preia rezultatul, caută „.txt ”și invocă„ grep ”pentru a căuta„ 00110011 ”. Această comandă va verifica fiecare fișier text din directorul cu extensia TXT și va căuta potrivirile.

Imprimați conținutul fișierului dintr-un anumit interval

Când lucrați cu un fișier mare, este obișnuit să aveți nevoia de a verifica conținutul unui anumit interval. Putem face exact asta cu o combinație inteligentă de „pisică”, „cap”, „coadă” și, bineînțeles, „țeavă”. Instrumentul „cap” afișează prima parte a unui conținut și „coadă” produce ultima parte.

pisică | cap -6

pisică | coada -6

Valori unice

Când lucrați cu ieșiri duplicate, poate fi destul de enervant. Uneori, intrarea duplicată poate provoca probleme grave. În acest exemplu, să aruncăm „uniq” pe un flux de text și să-l salvăm într-un fișier separat.

De exemplu, iată un fișier text care conține o listă mare de numere care au 2 cifre. Există cu siguranță conținut duplicat aici, corect?

duplicat de pisică.txt | fel

Acum, să efectuăm procesul de filtrare.

duplicat de pisică.txt | sortare | uniq> unic.txt

Verificați ieșirea.

liliac unic.txt

Arata mai bine!

Conducte de eroare

Aceasta este o metodă interesantă de conducte. Această metodă este utilizată pentru a redirecționa STDERR către STDOUT și pentru a continua cu conductele. Aceasta este notată cu simbolul „| &” (fără ghilimele). De exemplu, să creăm o eroare și să trimitem rezultatul către alt instrument. În acest exemplu, tocmai am tastat o comandă aleatorie și am trecut eroarea la „grep”.

adsfds | & grep n

Gânduri finale

În timp ce „conducta” în sine are o natură destul de simplistă, modul în care funcționează oferă o modalitate foarte versatilă de utilizare a metodei în moduri infinite. Dacă sunteți în scripturi Bash, atunci este mult mai util. Uneori, poți doar să faci lucruri nebunești! Aflați mai multe despre scripturile Bash.

Motoare de jocuri gratuite și open source pentru dezvoltarea jocurilor Linux
Acest articol va acoperi o listă de motoare de jocuri gratuite și open source care pot fi utilizate pentru dezvoltarea jocurilor 2D și 3D pe Linux. Ex...
Tutorial Shadow of the Tomb Raider pentru Linux
Shadow of the Tomb Raider este a douăsprezecea completare a seriei Tomb Raider - o franciză de jocuri de acțiune-aventură creată de Eidos Montreal. Jo...
Cum se mărește FPS în Linux?
FPS înseamnă Cadre pe secundă. Sarcina FPS este de a măsura rata de cadre în redările video sau în performanțele jocului. În cuvinte simple, numărul d...