10 korisnih operatora lančanog povezivanja u Linuxu s primjerima


Ulančavanje Linux naredbi znači kombiniranje nekoliko naredbi i njihovo izvršavanje na temelju ponašanja operatora koji se koristi između njih.

Ulančavanje naredbi u Linuxu je nešto kao da pišete kratke skripte ljuske u samoj ljusci i izvršavate ih izravno s terminala. Ulančavanje omogućuje automatizaciju procesa.

Štoviše, stroj bez nadzora može funkcionirati sustavno uz pomoć lančanih operatera.

Ovaj članak ima za cilj rasvijetliti često korištene operatore lančanih naredbi. Pruža kratke opise i odgovarajuće primjere koji mogu poboljšati vašu produktivnost i omogućiti vam pisanje sažetog, smislenog koda dok povremeno smanjuje opterećenje sustava.

1. Operator ampersand (&) – Pokrenite Linux naredbu u pozadini

Funkcija '&' je pokrenuti naredbu u pozadini. Samo upišite naredbu nakon koje slijedi razmak i '&'. Možete izvršiti više od jedne naredbe u pozadini, u jednom pokretu.

Pokrenite jednu Linux naredbu pod nazivom 'ping' u pozadini:

ping -­c5 linux-console.net &

Pokrenite dvije ili više apt naredbi u pozadini, istovremeno:

apt update & apt upgrade &

2. Operator točka-zarez (;) – Pokretanje više naredbi

Operator s točkom-zarezom (;) omogućuje pokretanje nekoliko naredbi odjednom, a izvršavanje naredbi odvija se uzastopno.

apt update ; apt upgrade ; mkdir test

Gornja kombinacija naredbi najprije će izvršiti instrukciju ažuriranja, zatim instrukciju nadogradnje i na kraju će stvoriti 'testni' direktorij ispod trenutnog radnog direktorija.

3. AND operator (&&) – Pokrenite drugu naredbu nakon uspjeha

Operator AND (&&) izvršio bi samo drugu naredbu, ako bi izvršenje prve naredbe USPJELO, tj. izlazni status prva naredba je 0. Ova naredba je vrlo korisna u provjeri statusa izvršenja posljednje naredbe.

Na primjer, želim posjetiti web stranicu linux-console.net pomoću naredbe links, u terminalu, ali prije toga moram provjeriti je li host uživo ili ne.

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

4. ILI operator (||) – Izvršenje uvjetne naredbe

OR Operator (||) sličan je iskazu 'else' u programiranju. Operator || dopušta vam da izvršite drugu naredbu samo ako izvršenje prve naredbe ne uspije, tj. izlazni status prve naredbe je ‘1’.

Na primjer, želim izvršiti 'apt update' s nekorijenskog računa i ako prva naredba ne uspije, onda druga naredba 'links linux-console.net' će izvršiti.

apt update || links linux-console.net

U gornjoj naredbi, budući da korisniku nije dopušteno ažurirati sustav, to znači da je izlazni status prve naredbe '1' i stoga se izvršava zadnja naredba 'links linux-console.net'.

Što ako je prva naredba uspješno izvršena, sa statusom izlaza '0'? Očito! Druga naredba se neće izvršiti.

mkdir test || links linux-console.net

Ovdje korisnik stvara mapu 'test' u svom početnom direktoriju, za što je korisniku dopušteno. Naredba je uspješno izvršena dajući status izlaza '0' i stoga se zadnji dio naredbe ne izvršava.

5. NOT Operator (!) – Selektivno izvršavanje naredbi

Operator NOT (!) sličan je izjavi "osim". Ova naredba će izvršiti sve osim navedenog uvjeta. Da biste to razumjeli, stvorite direktorij 'tecmint' u svom početnom direktoriju i 'cd' u njega.

mkdir tecmint 
cd tecmint

Zatim stvorite nekoliko vrsta datoteka u mapi "tecmint".

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

Vidite da smo stvorili sve nove datoteke unutar mape 'tecmint'.

ls 

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

Sada izbrišite sve datoteke osim 'html' odjednom, na pametan način pomoću naredbe rm.

rm -r !(*.html)

Samo da provjerim, zadnja egzekucija. Popis svih dostupnih datoteka pomoću naredbe ls.

ls 

a.html  b.html

6. I – ILI operator (&& – ||) – Uvjetno izvršavanje naredbi

Gore navedeni operator kombinacija je operatora ‘AND’ i ‘OR’. To je vrlo slično izjavi 'if-else'.

Na primjer, napravimo ping na linux-console.net, ako je uspjeh echo 'Verified' inače echo 'Host Down'.

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

Uzorak rezultata:

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

Sada prekinite internetsku vezu i ponovno pokušajte istu naredbu.

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

Uzorak rezultata:

ping: unknown host linux-console.net 
Host Down

7. PIPE Operator (|) – Pojednostavljena obrada izlaza

Ovaj operator PIPE vrlo je koristan kada izlaz prve naredbe djeluje kao ulaz u drugu naredbu. Na primjer, usmjerite izlaz 'ls -l' u 'less' i pogledajte izlaz naredbe.

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. Operator kombinacije naredbi {}

Kombinirajte dvije ili više naredbi, druga naredba ovisi o izvršenju prve naredbe.

Na primjer, provjerite je li direktorij 'bin' dostupan ili ne i ispišite odgovarajući izlaz.

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

9. Operator prvenstva() – Upravljački redoslijed izvršenja naredbi

Operator () omogućuje izvršavanje naredbi prema redoslijedu prvenstva.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

U gornjoj pseudo naredbi, što ako Command_x1 ne uspije? Nijedna od Command_x2, Command_x3, Command_x4 ne bi se izvršila, za ovo koristimo Operator prvenstva, kao:

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

U gornjoj pseudo naredbi, ako Command_x1 ne uspije, Command_x2 također ne uspije, ali se Command_x3 i Command_x4 ipak izvršavaju ovisno o izlazni status Command_x3.

10. Operator ulančavanja (\) – Ulančavanje višelinijskih naredbi

Operator spajanja (\), kao što naziv navodi, koristi se za spajanje velikih naredbi preko nekoliko redaka u ljusci. Na primjer, naredba u nastavku otvorit će tekstualnu datoteku test(1).txt.

nano test\(1\).txt

To je sve za sada. Uskoro ću smisliti još jedan zanimljiv članak. Do tada, ostanite s nama, zdravi i povezani s Tecmintom. Ne zaboravite dati svoje vrijedne povratne informacije u našem odjeljku za komentare.