De UNIX- commando pijp werkt als een fysieke pijp . Het verbindt twee UNIX-opdrachten en faciliteert dus een one - way flow van data . Als een fysieke pijp , die de vloeistofstroom regelt , de pijp commando geeft gebruikers uitgangslevel van het commando wordt uitgevoerd . Basics Net als een fysieke verbinding van twee pijpleidingen die de illusie van een continue pijp , de pijp commando geeft ( | ) laat twee UNIX- commando's werken samen . Bijvoorbeeld : $ cat abc.txt | wc - L23 De UNIX- commando " cat" wordt gebruikt om de inhoud van een bestand op te halen , terwijl de ' wc-l " commando doet een aantal woorden van de input stroom van woorden . De pipe commando " | " in dit voorbeeld gaat de output van de " kat " van het bestand abc.txt (die lijsten naar beneden de inhoud van het bestand abc.txt ) naar " wc - l ", die een aantal woorden op het presteert inhoud . In het voorbeeld is het resultaat 23 , waardoor het bestand abc.txt bevat 23 woorden . Als deze opdrachten afzonderlijk werden uitgevoerd , zou het moeilijk zijn om het aantal woorden te tellen in het dossier abc.txt . Pijp kan de gebruiker bereiken dit door de twee opdrachten combineren . Fysieke pijplijn gewricht , kan de output van een leiding niet hetzelfde als de input van de andere pijp , zoals in het diagram . Ook in UNIX , is het mogelijk dat de uitgangsgrootheid van een commando niet overeen de ingangsgrootheid van de andere . De pijp commando geeft je de mogelijkheid om de stroom te controleren . Als een commando sneller dan de ander handelt , keert hij de stroom . Bijvoorbeeld : $ ls | meer De "ls " commando geeft de inhoud van een directory . Echter , dit kan resulteren in teveel uitgang van de terminal als de map bestaat uit veel bestanden . Teneinde de uitgang aan en zinvoller ervan, de pijp commando ( | ) wordt gebruikt om deze uitgang door te geven aan andere opdracht " more " (die de uitgang begrenst een pagina ) . Dit resulteert in de productie is weergegeven op een pagina . Alleen wanneer de gebruiker op "Enter " is de volgende pagina van de output getoond . Flexibiliteit De pijp commando heeft de mogelijkheid om meer dan twee UNIX -commando te sluiten , het verstrekken meer flexibiliteit aan de gebruiker . Echter , om dit te gebruiken , moeten gebruikers weten wat ze willen en wat de totale individuele opdrachten doen . Bijvoorbeeld : $ ls | grep ^ d | grep notes | wc - l boven De opdracht is voornemens om alle sub - directories in een directory die het woord " noten " in bevatten hen en doet vervolgens een aantal woorden . Dit wordt gedaan door de combinatie van de vier opdrachten bovenstaande . De eerste opdracht , "ls , " geeft de inhoud van de huidige directory . De tweede opdracht , " grep ^ d , " vindt de sub - mappen uit die lijst . Het derde gebod , " grep notes , " vindt de sub - mappen die het woord bevatten " notes . " Het vierde gebod , " wc - l , " doet een aantal woorden uit de uitvoer Het belangrijkste punt om te onthouden bij het gebruik van de pijp commando is dat de uitvoer van de opdracht aan de linkerkant is naar de standaard uitvoer . en de input voor het commando aan de rechterkant is van de standaard invoer . Dus als er UNIX- commando's die uitgangen te sturen niet te standaard uitgangen (klemmen , bijvoorbeeld) , waarin de opdracht wordt uitgevoerd , moet de pijp commando niet gebruikt worden . Programming Pijpleidingen kunnen worden gemaakt in C /C + + -programma's , ook met behulp van de methode pipe ( ) . Deze oproep wordt een pijp object, dat twee nieuwe bestandindicators , fd1 en fd2 creëert . Een gelezen uit fd1 toegang tot de gegevens weggeschreven naar fd2 op een FIFO ( First In First Out ) basis , en een lees van fd2 toegang tot de gegevens weggeschreven naar fd2 op een FIFO basis . < br > |