10 korisnih lančanih operatera u Linuxu s primjerima


Lančano povezivanje Linux naredbi znači kombiniranje nekoliko naredbi i njihovo izvršavanje na osnovu ponašanja operatora koji se koristi između njih.

Lančano povezivanje komandi u Linuxu je nešto kao da pišete kratke shell skripte na samoj ljusci i izvršavate ih direktno sa terminala. Lanac omogućava automatizaciju procesa.

Štaviše, mašina bez nadzora može funkcionisati sistematski uz pomoć lančanih operatera.

Ovaj članak ima za cilj da baci svetlo na često korišćene operatore za lanac komandi. Pruža kratke opise i odgovarajuće primjere koji mogu poboljšati vašu produktivnost i omogućiti vam da pišete koncizan, smislen kod uz istovremeno smanjenje opterećenja sistema.

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

Funkcija '&' je da se naredba izvodi u pozadini. Samo upišite naredbu nakon čega slijedi razmak i '&'. Možete izvršiti više od jedne komande u pozadini, u jednom potezu.

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

ping -­c5 linux-console.net &

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

apt update & apt upgrade &

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

Operator tačka-zarez (;) omogućava pokretanje nekoliko komandi u jednom potezu i izvršavanje naredbe se odvija uzastopno.

apt update ; apt upgrade ; mkdir test

Gornja kombinacija naredbi će prvo izvršiti instrukciju ažuriraj, zatim instrukciju nadogradnja i na kraju će kreirati 'testni' direktorij u trenutnom radnom direktoriju.

3. Operator I (&&) – Pokrenite drugu naredbu nakon uspjeha

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

Na primjer, želim posjetiti web stranicu linux-console.net koristeći naredbu links, u terminalu, ali prije toga moram provjeriti da li je domaćin uživo ili ne.

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

4. Operator OR (||) – Uslovno izvršenje komande

Operator OR (||) je sličan izrazu 'else' u programiranju. Operator || vam omogućava da izvršite drugu naredbu samo ako izvršenje prve naredbe ne uspije, tj. izlazni status prve naredbe je „1“.

Na primjer, želim da izvršim 'apt update' sa ne-root naloga i ako prva komanda ne uspije, onda druga naredba 'links linux-console.net' će izvršiti.

apt update || links linux-console.net

U gornjoj naredbi, pošto korisniku nije bilo dozvoljeno ažuriranje sistema, to znači da je izlazni status prve komande '1' > i stoga se izvršava posljednja naredba 'links linux-console.net'.

Šta ako je prva naredba uspješno izvršena, sa izlaznim statusom '0'? Očigledno! Druga komanda se neće izvršiti.

mkdir test || links linux-console.net

Ovdje korisnik kreira mapu „test“ u svom početnom direktoriju, za koju je korisniku dozvoljeno. Naredba je uspješno izvršena i daje izlazni status '0' i stoga se posljednji dio naredbe ne izvršava.

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

Operator NOT (!) je sličan naredbi „osim“. Ova komanda će izvršiti sve osim predviđenog uslova. Da biste ovo razumjeli, kreirajte direktorij 'tecmint' u svom početnom direktoriju i 'cd' u njemu.

mkdir tecmint 
cd tecmint

Zatim kreirajte nekoliko vrsta datoteka u folderu „tecmint“.

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

Vidite da smo kreirali sve nove datoteke u folderu „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' datoteke odjednom, na pametan način koristeći komandu rm.

rm -r !(*.html)

Samo da provjerim, posljednje izvršenje. Navedite sve dostupne datoteke koristeći komandu ls.

ls 

a.html  b.html

6. AND – OR operator (&& – ||) – Uslovno izvršavanje naredbi

Gornji operator je kombinacija „AND“ i „OR“ operatora. To je kao izjava 'ako-inače'.

Na primjer, izvršimo ping na linux-console.net, ako je uspjeh eho „Verified“ inače eho „Host Down“.

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

Uzorak izlaza:

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 isključite internetsku vezu i pokušajte ponovo sa istom komandom.

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

Uzorak izlaza:

ping: unknown host linux-console.net 
Host Down

7. PIPE Operator (|) – Pojednostavljena obrada izlaza

Ovaj PIPE operator je vrlo koristan gdje izlaz prve komande djeluje kao ulaz za drugu komandu. Na primjer, konstruirajte izlaz 'ls -l' u 'manje' 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 da li je 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 prioriteta() – Upravljanje redoslijedom izvršenja komande

Operator () omogućava izvršavanje naredbi po redoslijedu prioriteta.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

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

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

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

10. Operator konkatenacije (\) – Višelinijska konkatenacija

Operator konkatenacije (\) kao što ime navodi, koristi se za spajanje velikih naredbi preko nekoliko linija u ljusci. Na primjer, naredba u nastavku će otvoriti tekstualnu datoteku test(1).txt.

nano test\(1\).txt

To je sve za sada. Uskoro dolazim do još jednog zanimljivog članka. Do tada Ostanite sa nama, zdravi i povezani na Tecmint. Ne zaboravite dati svoje vrijedne povratne informacije u našem odjeljku za komentare.