logo

Cauruļvadi operētājsistēmā Unix vai Linux

Caurule ir novirzīšanas veids (standarta izvades pārsūtīšana uz kādu citu galamērķi), ko izmanto Linux un citās Unix līdzīgās operētājsistēmās, lai nosūtītu vienas komandas/programmas/procesa izvadi uz citu komandu/programmu/procesu tālākai apstrādei. . Unix/Linux sistēmas ļauj komandas stdout savienot ar citas komandas stdin. To var izdarīt, izmantojot caurules rakstzīmi '|' .

Caurule tiek izmantota, lai apvienotu divas vai vairākas komandas, un šajā gadījumā vienas komandas izvade darbojas kā ievade citai komandai, un šīs komandas izvade var darboties kā nākamās komandas ievade utt. To var arī vizualizēt kā pagaidu savienojumu starp divām vai vairākām komandām/programmām/procesiem. Komandrindas programmas, kas veic turpmāko apstrādi, tiek sauktas par filtriem.



Šī tiešā saikne starp komandām/programmām/procesiem ļauj tām darboties vienlaicīgi un ļauj nepārtraukti pārsūtīt datus starp tām, nevis tos nodot caur pagaidu teksta failiem vai caur displeja ekrānu.
Caurules ir vienvirziena, t.i. dati plūst no kreisās puses uz labo pa cauruļvadu.

junit testa lietas

Sintakse:

command_1 | command_2 | command_3 | .... | command_N>

Cauruļvadu piemērs operētājsistēmā Unix vai Linux

1. Uzskaitiet visus failus un direktorijus un norādiet tos kā ievadi komandai 'grep', izmantojot sistēmu Linux.

ls | grep file.txt>

ls | grep fails.txt



Vispirms mēs izmantojam ls, lai uzskaitītu visus pašreizējā direktorijā esošos failus un direktorijus, pēc tam nododam tās izvadi komandai `grep` un meklējam faila nosaukumu `file.txt`. Komandas ls izvade tiek nosūtīta uz komandas grep ievadi, un rezultāts ir to failu saraksts, kas atbilst meklēšanas vienumam.

2. Uzskaitiet visus failus un direktorijus un ievadiet tos komandām “vairāk”, izmantojot cauruļvadu sistēmu Linux.

$ ls -l | more>

$ ls -l | vairāk

pavasara mvc

Komanda vairāk izmanto $ ls -l izvadi kā ievadi. Šīs komandas tīrais efekts ir tāds, ka ls -l izvade tiek parādīta pa vienam ekrānam. Caurule darbojas kā konteiners, kas ņem ls -l izvadi un dod to vairāk kā ievadi. Šī komanda neizmanto disku, lai savienotu standarta izvadi ls -l ar standarta vairāk ievadi, jo caurule ir ieviesta galvenajā atmiņā.
Runājot par I/O novirzīšanas operatoriem, iepriekš minētā komanda ir līdzvērtīga tālāk norādītajai komandu secībai.



$ ls -l ->temp vairāk -> temp (vai vairāk temp) [temp. saturs] rm temp>
temp

ls -l -> temp

Iepriekš minēto divu komandu izvade ir vienāda.

3. Kārtojiet failu sarakstu pēc lieluma, izmantojot sistēmu Linux

ls -l sort -k 5>
ls -l kārtot -k 5

Šī komanda uzskaita visus pašreizējā direktorijā esošos failus un pēc tam izmanto komandu 'kārtot', lai kārtotu sarakstu pēc piektās kolonnas, kas apzīmē faila lielumu.

4. Izmantojiet sort un uniq komandu, lai kārtotu failu un drukātu unikālas vērtības, izmantojot cauruļvadu sistēmu Linux

$ sort record.txt | uniq>

Tas sakārtos doto failu un izdrukās tikai unikālās vērtības.

kārtot ierakstu.txt | unik

Būla uz virkni java

5. Izmantojiet galvu un asti, lai failā drukātu līnijas noteiktā diapazonā.

$ cat sample2.txt | head -7 | tail -5>

Šī komanda atlasa pirmās 7 rindas, izmantojot (head -7) komandu, un tā tiks ievadīta komandā (tail -5), kas beidzot izdrukās pēdējās 5 rindas no šīm 7 rindām.

kaķa paraugs2.txt | galva -7 | aste -5

6. Izmantojiet ls un Find, lai atbilstošos failos uzskaitītu un izdrukātu visas rindas, kas atbilst noteiktam paraugam.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

Šī komanda atlasa failus ar .txt paplašinājumu dotajā direktorijā un meklē modeļus, piemēram, programmu iepriekš minētajā piemērā, un izdrukā tos, kuros ir programma.

ls -l | atrast ./ -type f -name *.txt -exec grep programma {} ;

7. Izmantojiet komandas cat, grep, tee un wc, lai nolasītu konkrēto lietotāja ierakstu un saglabātu to failā un drukas rindu skaitu.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

Šī komanda atlasa Radžats Dua un saglabājiet tos failā file2.txt un izdrukājiet kopējo atbilstošo rindu skaitu Radžats Dua

kaķis rezultāts.txt | grep Rajat Dua | tee fails2.txt | wc -l

sniegs vs ledus

8.Kā es varu novirzīt komandas izvadi uz failu Unix vai Linux sistēmā?

Mēs varam izmantot novirzīšanas operatoru `>`, lai novirzītu komandas izvadi.

Piemēram:

Ja man ir faila nosaukums 'file.txt' un es vēlos to novirzīt uz faila nosaukumu 'geeks.txt'.

 ls | grep 'file'>geeks.txt>
geeks.txt

ls | grep 'fails'> geeks.txt

Secinājums

Cauruļvadi ir jaudīga Unix un Linux operētājsistēmu funkcija, kas palīdz saistīt dažādas komandas, lai ātri un efektīvi veiktu sarežģītus uzdevumus. Šajā rakstā mēs uzzinājām, kā mēs varam novirzīt vienas komandas izvadi uz citas komandas ievadi. Kopumā mēs varam teikt, ka, izmantojot cauruļvadus, mēs varam ietaupīt laiku, uzlabot produktivitāti un samazināt diska vietas izmantošanu.