10 kasulikku ketinguoperaatorit Linuxis koos praktiliste näidetega


Linuxi käskude aheldamine tähendab mitme käsu ühendamist ja nende täitmiseks nende vahel kasutatava operaatori käitumise põhjal. Linuxi käskude aheldamine on midagi sellist, nagu kirjutaksite lühikesi shelliskripte shellis ja täidaksite neid otse terminalist. Aheldamine võimaldab protsessi automatiseerida. Pealegi võib järelevalveta masin aheldavate operaatorite abil töötada palju süstemaatiliselt.

Selle artikli eesmärk on heita valgust sageli kasutatavatele käske aheldavatele operaatoritele koos lühikirjelduste ja vastavate näidetega, mis kindlasti suurendavad teie tootlikkust ja võimaldavad teil süsteemi koormuse vähendamise kõrval mõnikord ka lühikesi ja sisukaid koode kirjutada.

1. Ampersandi operaator (&)

Funktsiooni ‘&’ ülesanne on panna käsk taustal töötama. Sisestage lihtsalt käsk, millele järgneb tühik ja ‘&’. Saate taustal täita mitu käsku ühe korraga.

Käivitage taustal üks käsk:

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

Käivitage taustal kaks käsku korraga:

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

2. semikoolon Operaator (;)

Semikoolonoperaator võimaldab käivitada, mitu käsku ühe korraga ja käsk täidetakse järjestikku.

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

Ülaltoodud käsukombinatsioon käivitab kõigepealt värskenduskäskluse, seejärel uuendusjuhised ja lõpuks loob praeguse töökataloogi kataloogi test.

3. JA operaator (&&)

Operaator AND (&&) täidaks teist käsku ainult siis, kui esimese käsu SUCCEEDS täitmine, st esimese käsu väljumise olek on 0. See käsk on viimase käsu täitmise oleku kontrollimisel väga kasulik.

Näiteks tahan külastada terminali linkide käsu abil veebisaiti linux-console.net, kuid enne seda pean kontrollima, kas host on aktiivne või mitte.

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

4. VÕI operaator (||)

VÕI operaator (||) sarnaneb programmeerimisel lausega ‘muu’. Ülaltoodud operaator lubab teil käsku käivitada ainult siis, kui esimese käsu käivitamine ebaõnnestub, st esimese käsu väljumise olek on ‘1’.

Näiteks tahan käivitada ‘apt-get update’ mitte-juurkontolt ja kui esimene käsk ebaõnnestub, siis käivitatakse teine käsk ‘lingid linux-console.net’.

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

Kuna kasutajal ei lubatud süsteemi värskendada, ülaltoodud käsus tähendab see, et esimese käsu väljumisolek on '1' ja seega käivitatakse viimane käsk 'lingid linux-console.net'.

Mis siis, kui esimene käsk täidetakse edukalt ja väljumisolek on 0? Ilmselgelt! Teist käsku ei täideta.

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

Siin loob kasutaja oma kodukataloogi kausta ‘test’, milleks kasutajal on lubatud. Käsk täidetud, andes väljumisstaatuse ‘0’ ja seega käsku viimast osa ei täideta.

5. EI OLE operaator (!)

NOT Operaator (!) Sarnaneb väitega ‘välja arvatud’. See käsk täidab kõik, välja arvatud tingimus. Selle mõistmiseks looge oma kodukataloogis kataloog ‘tecmint’ ja sinna juurde ‘cd’.

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

Järgmisena looge kausta ‘tecmint’ mitut tüüpi faile.

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

Vaadake, et oleme kõik uued failid kaustas ‘tecmint’ loonud.

[email :~/tecmint$ ls 

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

Kustutage nutikalt kõik failid, välja arvatud html-fail, korraga.

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

Lihtsalt kontrollimiseks, viimane hukkamine. Lisage kõik saadaolevad failid käsuga ls.

[email :~/tecmint$ ls 

a.html  b.html

6. JA - VÕI operaator (&& - ||)

Ülaltoodud operaator on tegelikult kombinatsioon JA ja Operaator. See sarnaneb paljuski kui-kui-teisega.

Näiteks pingutame saidile linux-console.net, kui edu kajas ‘Verified’, muidu kajas ‘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

Nüüd lahutage Interneti-ühendus ja proovige sama käsku uuesti.

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

7. Toruoperaator (|)

See PIPE-operaator on väga kasulik, kui esimese käsu väljund toimib teise käsu sisendina. Näiteks suunake ‘ls -l’ väljund „vähemaks“ ja vaadake käsu väljundit.

[email :~$ ls -l | less

8. Kombineeritud operaator {}

Ühendage kaks või enam käsku, teine käsk sõltub esimese käsu täitmisest.

Näiteks kontrollige, kas kataloog 'bin' on saadaval või mitte, ja väljastage vastav väljund.

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

9. Eelistusoperaator()

Operaator võimaldab käsku täita eelisjärjekorras.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

Mis juhtub ülaltoodud pseudokäskluses, kui Command_x1 nurjub? Kumbagi Command_x2, Command_x3, Command_x4 ei täideta, selleks kasutame Preedence Operatorit järgmiselt:

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

Ülaltoodud pseudokäskude korral ebaõnnestub ka Command_x1 ebaõnnestudes Command_x2, kuid ikkagi Command_x3 ja Command_x4 täidetavad Command_x3 väljumise olekust.

10. Liitmisoperaator (\)

Liitmise operaatorit (\), nagu nimetus täpsustab, kasutatakse suurte käskude ühendamiseks kestas mitmel real. Näiteks avab käsk Allpool tekstifaili testi (1) .txt.

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

Praeguseks kõik. Mul on varsti veel üks huvitav artikkel. Kuni selle ajani püsige lainel, olge terve ja Tecmintiga ühenduses. Ärge unustage oma kommentaaride jaotises oma väärtuslikku tagasisidet anda.