Linux-kommandoer

Linux-rørkommando

Linux-rørkommando
Denne "pipe" -kommando er let tilgængelig på UNIX / Linux-platforme. Denne kommando leder output fra den forrige kommando til den næste kommando. Der er bogstaveligt talt masser af situationer, hvor denne metode giver seriøs værdi.Før du hopper dybere, er der noget at vide om. Hvert enkelt program i UNIX / Linux-systemet har 3 indbyggede datastrømme.

Når vi arbejder med "rør" -triks, tager "rør" STDOUT af en kommando og sender den til STDIN i den næste kommando.

Lad os tjekke nogle af de mest almindelige måder, du kan indarbejde kommandoen "pipe" i din daglige brug.

Rørkommando

Grundlæggende brug

Det er bedre at uddybe arbejdsmetoden med "rør" med et levende eksempel, ikke sandt? Lad os komme igang. Følgende kommando vil fortælle “pacman”, standardpakkehåndtering for Arch og alle de Arch-baserede distroer, at udskrive alle de installerede pakker på systemet.

pacman -Qqe

Det er en rigtig LANG liste over pakker. Hvad med at hente kun et par komponenter? Vi kunne bruge “grep”. Men hvordan? En måde ville være at dumpe output til en midlertidig fil, "grep" den ønskede output og slette filen. Denne række opgaver kan i sig selv omdannes til et script. Men vi script kun til meget store ting. Lad os til denne opgave påkalde kraften fra "rør"!

pacman -Qqe | grep

Fantastisk, er det ikke?? "|" tegn er opkaldet til "pipe" kommandoen. Den griber STDOUT fra venstre sektion og føder den ind i STDIN for højre sektion.

I det ovennævnte eksempel passerede kommandoen "pipe" faktisk output i slutningen af ​​"grep" -delen. Sådan spiller det ud.

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

Flere rør

Dybest set er der ikke noget særligt med den avancerede brug af kommandoen “pipe”. Det er helt op til dig, hvordan du bruger det.

Lad os for eksempel starte med at stable flere rør.

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

Pacman-kommandooutputtet filtreres længere og længere af “grep” gennem en række rørledninger.

Nogle gange, når vi arbejder med indholdet af en fil, kan den være virkelig, virkelig stor. Det kan være svært at finde ud af det rigtige sted for vores ønskede indrejse. Lad os søge efter alle de poster, der indeholder cifre 1 og 2.

kat demo.txt | grep -n 1 | grep -n 2

Manipulerer liste over filer og mapper

Hvad skal du gøre, når du har at gøre med et bibliotek med TONS filer i det? Det er ret irriterende at rulle gennem hele listen. Sikker på, hvorfor ikke gøre det mere tåleligt med rør? Lad os i dette eksempel tjekke listen over alle filerne i mappen "/ usr / bin".

ls -l | mere

Her udskriver “ls” alle filer og deres info. Derefter sender "rør" det til "mere" for at arbejde med det. Hvis du ikke vidste, er "mere" et værktøj, der forvandler tekster til en skærmvisning ad gangen. Det er dog et gammelt værktøj, og ifølge den officielle dokumentation anbefales "mindre" mere.

ls -l / usr / bin | mindre

Sortering af output

Der er et indbygget værktøj "sorter", der tager tekstinput og sorterer dem. Dette værktøj er en rigtig perle, hvis du arbejder med noget virkelig rodet. For eksempel fik jeg denne fil fuld af tilfældige strenge.

kat demo.txt

Bare rør det for at "sortere".

kat demo.txt | sortere

Det er bedre!

Udskrivning af matches af et bestemt mønster

ls -l | finde ./ -type f -navn "*.txt "-exec grep 00110011 \;

Dette er en ret snoet kommando, ikke? Først udsender “ls” listen over alle filer i biblioteket. "Find" -værktøjet tager output, søger efter ".txt ”filer og indkaldelse“ grep ”for at søge efter“ 00110011 ”. Denne kommando kontrollerer hver enkelt tekstfil i biblioteket med TXT-udvidelsen og ser efter matches.

Udskriv filindhold i et bestemt område

Når du arbejder med en stor fil, er det almindeligt at have behov for at kontrollere indholdet af et bestemt område. Vi kan gøre netop det med en smart kombination af "kat", "hoved", "hale" og selvfølgelig "rør". Værktøjet "head" udsender den første del af et indhold, og "tail" output den sidste del.

kat | hoved -6

kat | hale -6

Unikke værdier

Når du arbejder med duplikerede output, kan det være ret irriterende. Nogle gange kan duplikeret input forårsage alvorlige problemer. Lad os i dette eksempel kaste "uniq" på en tekststrøm og gemme den i en separat fil.

For eksempel er her en tekstfil, der indeholder en stor liste med tal, der er 2 cifre lange. Der er bestemt duplikatindhold her, ikke?

kat duplikat.txt | sortere

Lad os nu udføre filtreringsprocessen.

kat duplikat.txt | sorter | uniq> unik.txt

Tjek output.

bat unik.txt

Ser bedre ud!

Fejlrør

Dette er en interessant rørmetode. Denne metode bruges til at omdirigere STDERR til STDOUT og fortsætte med rørledningen. Dette betegnes med symbolet "| &" (uden anførselstegn). Lad os for eksempel oprette en fejl og sende output til et andet værktøj. I dette eksempel skrev jeg bare en tilfældig kommando og sendte fejlen til "grep".

adsfds | & grep n

Afsluttende tanker

Selvom "pipe" i sig selv er ret forenklet, tilbyder den måde, det fungerer på, en meget alsidig måde at bruge metoden på uendelige måder. Hvis du er interesseret i Bash-scripting, er det meget mere nyttigt. Nogle gange kan du bare gøre skøre ting direkte! Lær mere om Bash-scripting.

Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...
Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...