Rør (skall)

Den skallet av operativsystemer for Unix har en mekanisme kalt rør , rørledning eller rør ( / paɪp / ). Denne mekanismen gjør det mulig å kjede prosesser slik at utgangen fra en prosess ( stdout ) direkte mater inngangen ( stdin ) til den neste. Hver forbindelse opprettes av et anonymt rør . Filterprogrammer brukes ofte i denne konfigurasjonen. Douglas McIlroy laget dette konseptet for Unix-skjell, og det engelske navnet stammer fra analogien med en fysisk rørledning .

Shell Unix

Symbolet som brukes til å lage rør i Unix- skall er den vertikale linjen | , ofte kalt rør eller rør i forlengelse.

For eksempel : programme1 | programme2

Programmet program1 utføres av systemet som sender resultatene til program2 som i sin tur returnerer resultatet til standard ut av systemet.

Røret er mye brukt på Unix, for eksempel for å knytte flere kommandoer hvis prosesser er koblet.

For eksempel kommandoen:

cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | less

Lar deg hente og vise IP-adressene til klientene som oftest har tilgang til en Apache -webserver .

Pseudo-rør

I operativsystemer monotâches som MS-DOS , må kjedet prosessen utføres sekvensielt, dvs. en etter en. Resultatet av hver prosess lagres deretter i en midlertidig fil, som deretter leses av neste prosess. Derfor på den ene siden kan størrelsen som kreves på disken for å utføre disse kommandoene være veldig stor og derfor veldig langsom utførelse, på den annen side er permanent anskaffelse umulig siden den aldri vil returnere "hånden" og til slutt kan disse kommandoene ikke behandle reelle -tid datainnsamling siden alt må skrives til diskene før den andre behandlingen er ferdig. Syntaksen er imidlertid identisk med den for UNIX-skallrør. Vi snakker derfor om pseudorør.

Behandlingen av "dir | skjebne | mer "av kommandotolken lar deg vise listen over filene i katalogen på en sortert måte for hver side. For å gjøre dette, utfører systemet:

  1. oppretting av en midlertidig 1.tmp-fil i katalogen pekt av% TEMP% -variabelen eller i gjeldende katalog hvis% TEMP% ikke er spesifisert
  2. kjør "dir" -kommandoen og lagre dataene i 1.tmp-filen
  3. opprett en midlertidig 2.tmp-fil
  4. utførelse av "sorter" -kommandoen med 1.tmp-filen som inndata og utdata i 2.tmp-filen
  5. kjør "mer" -kommandoen med 2.tmp-filen som input og output til standard output
  6. slett 1.tmp og 2.tmp

Windows PowerShell

Windows PowerShell , shell-ekvivalent for Microsofts multitasking-operativsystemer , implementerer også denne typen mekanisme. Men i motsetning til UNIX-rør som lar deg manipulere en rå datastrøm i form av byte eller biter, lar PowerShell-rør deg manipulere .NET- objekter , en metode som implisitt av kommandotolken sjekker arten av strømmen.

Merknader og referanser

Relaterte artikler