10 nyttige kjedeoperatører i Linux med eksempler


Kobling av Linux-kommandoer betyr å kombinere flere kommandoer og få dem til å utføres basert på oppførselen til operatøren som brukes mellom dem.

Kobling av kommandoer i Linux er noe sånt som at du skriver korte skall-skript på selve skallet, og kjører dem direkte fra terminalen. Kjeding gjør det mulig å automatisere prosessen.

Dessuten kan en ubetjent maskin fungere systematisk ved hjelp av kjedeoperatører.

Denne artikkelen tar sikte på å belyse ofte brukte kommandokjedeoperatører. Den gir korte beskrivelser og tilsvarende eksempler som kan øke produktiviteten din og gjøre det mulig for deg å skrive kortfattet, meningsfull kode samtidig som du reduserer systembelastningen til tider.

1. Ampersand Operator (&) – Kjør Linux-kommando i bakgrunnen

Funksjonen til «&» er å få kommandoen til å kjøre i bakgrunnen. Bare skriv inn kommandoen etterfulgt av et mellomrom og "&". Du kan utføre mer enn én kommando i bakgrunnen på én gang.

Kjør en enkelt Linux-kommando kalt 'ping' i bakgrunnen:

ping -­c5 linux-console.net &

Kjør to eller flere apt-kommandoer i bakgrunnen, samtidig:

apt update & apt upgrade &

2. Semikolonoperatør (;) – Kjør flere kommandoer

Semi-kolon (;)-operatoren gjør det mulig å kjøre, flere kommandoer på en gang og utføringen av kommandoen skjer sekvensielt.

apt update ; apt upgrade ; mkdir test

Kommandokombinasjonen ovenfor vil først utføre oppdater-instruksjonen, deretter oppgradering-instruksjonen, og til slutt vil den lage en "test"-katalog under gjeldende arbeidskatalog.

3. OG Operatør (&&) – Kjør andre kommando ved suksess

AND Operator (&&) vil kun utføre den andre kommandoen hvis utførelsen av den første kommandoen SUCCEEDS, dvs. utgangsstatusen til første kommando er 0. Denne kommandoen er veldig nyttig for å sjekke utførelsesstatusen til den siste kommandoen.

For eksempel vil jeg besøke nettstedet linux-console.net ved å bruke link-kommandoen i terminalen, men før det må jeg sjekke om verten er live eller >ikke.

ping -c3 linux-console.net && links linux-console.net

4. ELLER Operatør (||) – Betinget kommandoutførelse

OR-operatøren (||) ligner mye på en «annet»-setning i programmering. Operatoren || lar deg utføre den andre kommandoen bare hvis utførelsen av den første kommandoen mislykkes, dvs. utgangsstatusen til den første kommandoen er '1'.

For eksempel vil jeg utføre 'apt update' fra en ikke-root-konto, og hvis den første kommandoen mislykkes, så den andre 'links linux-console.net'-kommandoen vil utføre.

apt update || links linux-console.net

I kommandoen ovenfor, siden brukeren ikke hadde lov til å oppdatere systemet, betyr det at utgangsstatusen til den første kommandoen er '1' og dermed blir den siste kommandoen «links linux-console.net» utført.

Hva om den første kommandoen utføres vellykket, med en avslutningsstatus «0»? Åpenbart! Den andre kommandoen vil ikke utføres.

mkdir test || links linux-console.net

Her oppretter brukeren en mappe «test» i hjemmekatalogen, som brukeren har tillatelse til. Kommandoen som ble utført, gir en avslutningsstatus «0», og den siste delen av kommandoen blir derfor ikke utført.

5. IKKE operatør (!) – Selektiv utførelse av kommandoer

NOT Operator (!) ligner mye på en «unntatt»-setning. Denne kommandoen vil utføre alle unntatt betingelsen som er oppgitt. For å forstå dette, lag en katalog «tecmint» i hjemmekatalogen og «cd» til den.

mkdir tecmint 
cd tecmint

Deretter oppretter du flere typer filer i mappen «tecmint».

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

Se at vi har opprettet alle de nye filene i mappen «tecmint».

ls 

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

Slett nå alle filene unntatt 'html'-filen på en gang, på en smart måte ved å bruke rm-kommandoen.

rm -r !(*.html)

Bare for å bekrefte, siste utførelse. List alle tilgjengelige filer ved å bruke ls-kommandoen.

ls 

a.html  b.html

6. OG – OR-operator (&& – ||) – Betinget utførelse av kommandoer

Operatoren ovenfor er en kombinasjon av «AND» og «ELLER» Operator. Det er mye som en «hvis-annet»-utsagn.

La oss for eksempel gjøre en ping til linux-console.net, hvis suksessen ekko «Bekreftet» ellers «Vert ned».

ping -c3 linux-console.net && echo "Verified" || echo "Host Down"

Eksempelutdata:

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

Koble nå fra internettforbindelsen og prøv den samme kommandoen på nytt.

ping -c3 linux-console.net && echo "verified" || echo "Host Down"

Eksempelutdata:

ping: unknown host linux-console.net 
Host Down

7. PIPE-operatør (|) – Strømlinjeformet utdatabehandling

Denne PIPE-operatoren er veldig nyttig der utdataene fra den første kommandoen fungerer som en inngang til den andre kommandoen. For eksempel, pipeline utdataene fra «ls -l» til «mindre» og se utdataene til kommandoen.

ls -l | less

drwx------  tecmint tecmint  4.0 KB Thu Nov 16 12:03:02 2023 AnyDesk
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:35 2023 bin
drwxr-xr-x  root    root     4.0 KB Wed Nov 24 22:05:09 2021 DEBIAN
drwxrwxr-x  tecmint tecmint  4.0 KB Sat Nov 18 12:32:49 2023 Desktop
drwx--x---+ tecmint tecmint  100 KB Fri Dec  8 12:00:49 2023 Downloads
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 10:25:07 2023 llpp
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:26:46 2023 MyImages
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 14:55:42 2023 Obsidian Vault
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:32 2023 opt
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:46:54 2023 php
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 15:54:33 2023 tar_examples
.rw-rw-r--  tecmint tecmint   73 KB Mon Sep 18 11:46:02 2023 Apache-Web-Server-Security.png
.rw-rw-r--  tecmint tecmint  2.2 KB Sun Oct 29 00:17:15 2023 ChatGPT-SEO-Prompts
.rw-rw-r--  tecmint tecmint   41 KB Thu Nov 23 11:34:33 2023 Create-Users-in-Linux.png
...

8. Kommandokombinasjonsoperatør {}

Kombiner to eller flere kommandoer, den andre kommandoen avhenger av utførelsen av den første kommandoen.

Sjekk for eksempel om en katalog «bin» er tilgjengelig eller ikke, og skriv ut tilsvarende utdata.

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

9. Precedence Operator() – Administrere kommandoutførelsesordre

Operatoren () gjør det mulig å utføre kommandoer i prioritert rekkefølge.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

I pseudokommandoen ovenfor, hva hvis Command_x1 mislykkes? Ingen av Command_x2, Command_x3, Command_x4 ville bli utført, for dette bruker vi Precedence Operator, som:

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

I pseudokommandoen ovenfor, hvis Command_x1 mislykkes, mislykkes Command_x2 også, men fortsatt utføres Command_x3 og Command_x4 avhengig av utgangsstatus for Command_x3.

10. Sammenkoblingsoperatør (\) – Sammenknytting av flere linjer

Concatenation Operator (\) som navnet angir, brukes til å sette sammen store kommandoer over flere linjer i skallet. Kommandoen nedenfor vil for eksempel åpne en tekstfil test(1).txt.

nano test\(1\).txt

Det er alt for nå. Jeg kommer med en annen interessant artikkel veldig snart. Inntil da Hold deg oppdatert, sunn og koblet til Tecmint. Ikke glem å gi din verdifulle tilbakemelding i kommentarseksjonen vår.