Et rør er en form for omdirigering (overføring av standard utdata til en annen destinasjon) som brukes i Linux og andre Unix-lignende operativsystemer for å sende utdataene fra en kommando/program/prosess til en annen kommando/program/prosess for videre behandling . Unix/Linux-systemene lar stdout av en kommando kobles til stdin til en annen kommando. Du kan få det til å gjøre det ved å bruke pipetegnet '|' .
Røret brukes til å kombinere to eller flere kommandoer, og i dette fungerer utdata fra en kommando som input til en annen kommando, og denne kommandoens utgang kan fungere som input til neste kommando, og så videre. Det kan også visualiseres som en midlertidig forbindelse mellom to eller flere kommandoer/programmer/prosesser. Kommandolinjeprogrammene som utfører den videre behandlingen blir referert til som filtre.
Denne direkte forbindelsen mellom kommandoer/programmer/prosesser lar dem operere samtidig og tillater at data overføres mellom dem kontinuerlig i stedet for å måtte sende dem gjennom midlertidige tekstfiler eller gjennom skjermen.
Rør er ensrettet, dvs. data flyter fra venstre til høyre gjennom rørledningen.
Syntaks:
command_1 | command_2 | command_3 | .... | command_N>
Eksempel på rørføring i Unix eller Linux
1. List opp alle filer og kataloger og gi dem som input til `grep`-kommandoen ved å bruke rør i Linux
ls | grep file.txt>
ls | grep file.txt
I denne første bruker vi `ls` for å liste alle filene og katalogene i gjeldende katalog, og sender deretter utdataene til `grep`-kommandoen og søker etter filnavnet `file.txt`. Utdataene fra ls-kommandoen sendes til inngangen til grep-kommandoen, og resultatet er en liste over filer som samsvarer med søkeordet.
hva betyr dette xd
2. List opp alle filer og kataloger og gi dem som input til 'flere' kommandoer ved å bruke rør i Linux.
$ ls -l | more>
$ ls -l | mer
The more-kommandoen tar utdata fra $ ls -l som input. Nettoeffekten av denne kommandoen er at utdataene til ls -l vises en skjerm om gangen. Røret fungerer som en beholder som tar utgangen av ls -l og gir den til flere som input. Denne kommandoen bruker ikke en disk for å koble standard utgang på ls -l til standardinngangen til mer fordi pipe er implementert i hovedminnet.
Når det gjelder I/O-omdirigeringsoperatører, er kommandoen ovenfor ekvivalent med følgende kommandosekvens.
$ ls -l ->temp mer -> temp (eller mer temp) [innhold av temp] rm temp>temp
ls -l -> temp
Utgangen av de to ovennevnte kommandoene er den samme.
3. Sorter en liste over filer etter størrelse ved å bruke rør i Linux
ls -l sort -k 5>ls -l sortere -k 5
Denne kommandoen viser alle filene i gjeldende katalog, og bruker deretter `sort`-kommandoen til å sortere listen etter den femte kolonnen, som representerer filstørrelsen.
4. Bruk sort and uniq-kommandoen til å sortere en fil og skrive ut unike verdier ved hjelp av pipe-systemer i Linux
$ sort record.txt | uniq>
Dette vil sortere den gitte filen og bare skrive ut de unike verdiene.
sort record.txt | unik
5. Bruk hode og hale for å skrive ut linjer i et bestemt område i en fil.
$ cat sample2.txt | head -7 | tail -5>
Denne kommandoen velger de første 7 linjene gjennom (head -7) kommandoen og som vil bli lagt inn til (tail -5) kommandoen som til slutt vil skrive ut de siste 5 linjene fra de 7 linjene.
cat sample2.txt | hode -7 | hale -5
6. Bruk ls og finn for å liste og skrive ut alle linjer som samsvarer med et bestemt mønster i samsvarende filer.
$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;> Denne kommandoen velger filer med .tekst utvidelse i den gitte katalogen og søker etter mønstre som program i eksemplet ovenfor og skriver ut de som har program i seg.
ls -l | finn ./ -type f -navn *.txt -exec grep program {} ;
7. Bruk kommandoen cat, grep, tee og wc for å lese den aktuelle oppføringen fra brukeren og lagre i en fil og skrive ut linjetelling.
$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>
Denne kommandoen velger Rajat Dua og lagre dem i file2.txt og skriv ut totalt antall linjer som samsvarer Rajat Dua
cat result.txt | grep Rajat Dua | tee file2.txt | wc -l
8.Hvordan kan jeg omdirigere utdataene fra en kommando til en fil i Unix eller Linux?
Vi kan bruke omdirigeringsoperatoren `>` for å omdirigere utdataene til en kommando i rør.
For eksempel:
Hvis jeg har et filnavn `file.txt` og vil omdirigere det til et filnavn `geeks.txt`.
ls | grep 'file'>geeks.txt>geeks.txt
ls | grep 'fil'> geeks.txt
Konklusjon
Piping er en kraftig funksjon i Unix- og Linux-operativsystemer som hjelper oss å koble sammen forskjellige kommandoer for å utføre komplekse oppgaver raskt og effektivt. I denne artikkelen har vi lært hvordan vi kan omdirigere utdataene fra en kommando til inngangen til en annen kommando. Samlet sett kan vi si at ved å bruke rør kan vi spare tid, forbedre produktiviteten og redusere diskplassbruken.