10 nyttige kædeoperatører i Linux med praktiske eksempler


Kædning af Linux-kommandoer betyder at kombinere flere kommandoer og få dem til at udføre baseret på operatørens opførsel mellem dem. Lænkning af kommandoer i Linux er ligesom du skriver korte shell-scripts på selve skallen og udfører dem direkte fra terminalen. Kædning gør det muligt at automatisere processen. Desuden kan en uovervåget maskine fungere på en meget systematisk måde ved hjælp af kædearbejdere.

Denne artikel sigter mod at kaste lys over hyppigt anvendte kommandokæderingsoperatører med korte beskrivelser og tilsvarende eksempler, som helt sikkert øger din produktivitet og lader dig til tider skrive korte og meningsfulde koder udover at reducere systembelastningen.

1. Ampersand-operatør (&)

Funktionen af '&' er at få kommandoen til at køre i baggrunden. Skriv bare kommandoen efterfulgt af et hvidt mellemrum og '&'. Du kan udføre mere end en kommando i baggrunden på én gang.

Kør en kommando i baggrunden:

[email :~$ ping ­c5 linux-console.net &

Kør to kommandoer i baggrunden samtidigt:

[email :/home/tecmint# apt-get update & apt-get upgrade &

2. semi-colon operatør (;)

Semikolonoperatøren gør det muligt at køre, flere kommandoer på én gang, og udførelsen af kommandoen sker sekventielt.

[email :/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test

Ovenstående kommandokombination udfører først opdateringsinstruktioner, derefter opgraderingsinstruktioner og til sidst opretter en 'test' -mappe under den aktuelle arbejdsmappe.

3. OG operatør (&&)

AND-operatøren (&&) udfører kun den anden kommando, hvis udførelsen af den første kommando SUCCEEDS, dvs. udgangsstatus for den første kommando er 0. Denne kommando er meget nyttig til kontrol af udførelsesstatus for den sidste kommando.

For eksempel vil jeg besøge webstedet linux-console.net ved hjælp af kommandoen links i terminalen, men inden det skal jeg kontrollere, om værten er live eller ikke.

[email :/home/tecmint# ping -c3 linux-console.net && links linux-console.net

4. ELLER operatør (||)

ELLER-operatøren (||) ligner meget et 'andet' udsagn i programmeringen. Ovenstående operator giver dig kun mulighed for at udføre anden kommando, hvis udførelsen af første kommando mislykkes, dvs. udgangsstatus for første kommando er '1'.

For eksempel vil jeg udføre 'apt-get update' fra ikke-root-konto, og hvis den første kommando mislykkes, udføres den anden 'links' linux-console.net 'kommando.

[email :~$ apt-get update || links linux-console.net

Da brugeren ikke fik lov til at opdatere systemet i ovenstående kommando, betyder det, at udgangsstatus for første kommando er '1', og derfor bliver den sidste kommando 'links linux-console.net' udført.

Hvad hvis den første kommando udføres med succes med en exit-status '0'? Naturligvis! Anden kommando udføres ikke.

[email :~$ mkdir test || links linux-console.net

Her opretter brugeren en mappe 'test' i sin hjemmekatalog, som brugeren har tilladelse til. Kommandoen, der blev udført med succes, hvilket giver en exitstatus '0', og derfor udføres den sidste del af kommandoen ikke.

5. IKKE operatør (!)

NOT Operator (!) Ligner meget et 'undtagen' udsagn. Denne kommando udfører alle undtagen betingelserne. For at forstå dette skal du oprette et katalog 'tecmint' i dit hjemmekatalog og 'cd' til det.

[email :~$ mkdir tecmint 
[email :~$ cd tecmint

Opret derefter flere typer filer i mappen 'tecmint'.

[email :~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

Se, vi har oprettet alle de nye filer i mappen 'tecmint'.

[email :~/tecmint$ ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

Slet nu alle filerne undtagen 'html' -filen på én gang på en smart måde.

[email :~/tecmint$ rm -r !(*.html)

Bare for at bekræfte, sidste udførelse. Liste over alle de tilgængelige filer ved hjælp af kommandoen ls.

[email :~/tecmint$ ls 

a.html  b.html

6. AND - ELLER operatør (&& - ||)

Ovenstående operatør er faktisk en kombination af 'OG' og 'ELLER' Operatør. Det ligner meget et 'if-else' udsagn.

Lad os for eksempel pinge til linux-console.net, hvis succes ekko 'Bekræftet' ellers ekko 'Host Down'.

[email :~/tecmint$ ping -c3 linux-console.net && echo "Verified" || echo "Host Down"
PING linux-console.net (212.71.234.61) 56(84) bytes of data. 
64 bytes from linux-console.net (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- linux-console.net ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

Afbryd nu din internetforbindelse, og prøv den samme kommando igen.

[email :~/tecmint$ ping -c3 linux-console.net && echo "verified" || echo "Host Down"
ping: unknown host linux-console.net 
Host Down

7. PIPE-operatør (|)

Denne PIPE-operatør er meget nyttig, når output fra første kommando fungerer som et input til den anden kommando. For eksempel, rør output af 'ls -l' til 'mindre', og se output af kommandoen.

[email :~$ ls -l | less

8. Kommandokombinationsoperatør {}

Kombiner to eller flere kommandoer, den anden kommando afhænger af udførelsen af den første kommando.

Kontroller for eksempel, om en bibliotek 'bin' er tilgængelig eller ej, og output tilsvarende output.

[email :~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. Prioritetsoperatør()

Operatøren gør det muligt at udføre kommando i forrangsrækkefølge.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

I ovenstående pseudo-kommando, hvad hvis Command_x1 mislykkes? Ingen af Command_x2, Command_x3, Command_x4 ville udføres, til dette bruger vi Precedence Operator, som:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

I ovenstående pseudokommando, hvis Command_x1 fejler, mislykkes Command_x2 også, men Stadig Command_x3 og Command_x4 udføres afhænger af exit-status for Command_x3.

10. Sammenkædningsoperatør (\)

Sammenkædningsoperatøren (\), som navnet angiver, bruges til at sammenkæde store kommandoer over flere linjer i skallen. For eksempel åbner nedenstående kommando tekstfiltest (1) .txt.

[email :~/Downloads$ nano test\(1\).txt

Det er alt for nu. Jeg kommer snart med en anden interessant artikel. Indtil da Bliv afstemt, sund og forbundet med Tecmint. Glem ikke at give din værdifulde feedback i vores kommentarsektion.