Operatori lančanih naredbi posebni su znakovi koji se koriste za pisanje minijaturnih skripti ljuske u naredbenom retku. Općenito se koriste za izvršavanje naredbi u određenom nizu, definiranom postavljanjem operatora između naredbi. Ovo je nevjerojatno korisno u automatizaciji zadataka.
Naučimo nešto o nekoliko uobičajenih operatora za lančano ulančavanje u Linuxu koji vam mogu pomoći da brže dovršite zadatke i uz kraće korisničke intervale.
1. Operator ampersand (&)
Često kada otvorite program ili izvršite naredbu iz ljuske, morate ili pričekati da naredba završi ili ručno izaći iz programa prije nego što možete nastaviti koristiti ljusku. Ovdje operator ampersand (&) stupa na scenu.
Dodavanjem operatora ampersand bilo kojoj naredbi, diktirate ljusku izvrši tu Linux naredbu u pozadini tako da možete nastaviti koristiti školjku nevezano.
gedit &
Obično, ako pokrenete gedit s terminala, nećete moći koristiti terminal ako ne zatvorite uređivač teksta. Ali, dodavanjem operatora ampersand, možete ga pokrenuti u pozadini i odmah nastaviti koristiti ljusku.
2. Operator točka-zarez (;)
Operator točka-zarez nevjerojatno je koristan Linuxov operator lančanog povezivanja koji možete koristiti za izvršavanje naredbi definiranim, uzastopnim redoslijedom. Poredajte naredbe i odvojite ih točkom-zarezom.
pwd; mkdir test; CDtest; dodirna datoteka
Gornja sintaksa nalaže ljusci da izvrši svaku naredbu jednu za drugom. Imajte na umu da ljuska ne provjerava završava li svaka naredba uspješno. Čim ljuska primi povratni kod, prelazi na izvršavanje sljedeće naredbe.
3. OR operator (||)
Operator OR će izvršiti naredbu koja slijedi samo ako prethodna naredba ne uspije, tj. vrati izlazni kod 0. Funkcionira kao logička vrata ILI, koja vraćaju vrijednost 1 kada je ulaz 0.
loša_naredba || ls
U ovom primjeru sintakse, loša_naredba je lažna naredba koja se neće uspjeti izvršiti, a budući da ne uspije, naredba slijedi OR operator, što je naredba ls, uspješno će se izvršiti.
4. Operater cijevi (|)
Operator cijevi usmjerava izlaz prethodne naredbe kao ulaz u naredbu koja slijedi. Najčešće se koristi za filtriranje podataka pomoću naredbe grep.
mačji test | grep -i "iskoristiti"
Ova naredba šalje izlaz mačka naredba kao ulaz u naredbu grep, koja zatim filtrira izlaz prema određenom nizu.
5. Operator I (&&)
Ovaj operator funkcionira na sličan način kao operator točka-zarez osim što će, za razliku od operatora točka-zarez, AND operator izvršavati naredbe samo ako je prethodna naredba uspješno izvršena.
pwd && mkdir test && cd test && loša_naredba && ls
U ovom primjeru sintakse, ljuska će uspješno izvršiti sve naredbe do loša_naredba. Međutim, budući da se bad_command ne uspije pokrenuti, ljuska će vratiti pogrešku i preskočiti naredbu ls.
6. Operator NOT (!)
Operator NOT radi na sličan način kao naredba osim u programiranju. Na primjer, ako želite izvesti operaciju na velikom broju datoteka u direktoriju, ali želite isključiti a nekoliko na temelju nekog parametra, tada možete koristiti operator NOT prosljeđivanjem parametra nakon znaka NOT (!).
rm-r !(*.txt)
Ova ogledna naredba će rekurzivno ukloniti sve datoteke u direktoriju osim datoteka koje imaju ".txt" proširenje.
7. Operator prvenstva ((..))
Naredbe nakon operatora AND i OR ovise o izlaznom kodu prethodne naredbe. Ovi su operatori binarni i procjenjuju samo dvije naredbe koje dolaze prije i iza njih.
Dakle, kada radite s više operatora, važno je postaviti grupe i prvenstvo kako biste osigurali da slijed izvršavanja ispunjava vaša očekivanja.
(ls *.txt > txt-datoteke.list && cp *.tx ~) && (ls *.deb > deb-paketi.popis && cp *.deb ~) || jeka "Test prednosti!"
U ovom primjeru sintakse, obje grupe naredbi moraju vratiti izlazni kod 0 kako bi se osiguralo uspješno izvršenje posljednje naredbe. Ovaj primjer zahtijeva da obje naredbe u prvom skupu () izađu s 0 da bi se pokrenuo drugi set ().
8. Operator kombinacije ({..})
Kao što naziv sugerira, operator kombinacije koristi se za grupiranje naredbi. Koje god naredbe želite grupirati, možete ih staviti unutar vitičastih zagrada, a one će se izvršiti ovisno o izlaznom kodu prve naredbe.
test -f /etc/passwd && {pwd; datum} && echo $0; jeka "zdravo"
Uzorak sintakse testirat će je li datoteku /etc/passwd je prisutan, ispisati trenutni radni direktorij, datum, ime ljuske i odjeknuti "Hello".
9. Ulančavanje ili operator izlaza (\)
Operator za spajanje ili escape ima dvije funkcije. Možete ga koristiti za spajanje dviju naredbi ili kao izlazni znak kada radite s nizovima u ljusci.
mkdir test0 test1 \ test2
echo "Zdravo! iz the
druga strana"
Prva naredba će napraviti četiri direktorija pod nazivom test0 do test2, a druga naredba će ispisati niz odvojen novim retkom.
10. Operatori preusmjeravanja (>, >>,
Operatori preusmjeravanja preusmjeravaju izlaz ili ulaz u datoteku bilo ponovnim pisanjem datoteke ili dodavanjem u nju. Ako želite ponovno napisati datoteku, tada morate koristiti sintaksu jednostruke uglaste zagrade (>). Ako želite dodati u datoteku, morat ćete koristiti sintaksu dvostrukih uglastih zagrada (>>).
jeka "dsd"> test; jeka "bssss">> test
U oglednoj sintaksi, prva naredba prebrisat će "testnu" datoteku danim nizom, ali u drugoj naredbi, navedeni niz će biti pridodan testnoj datoteci.
Ubrzajte tijek rada vašeg Linux terminala
Dok će korištenje posebnih operatora značajno pojednostaviti izvršenje zadatka za vas, postoji više drugih načina za ubrzanje vašeg tijeka rada.
Jedan jednostavan i vrijedan način da učinite više u manje vremena je da se upoznate s nekoliko praktičnih prečaca ljuske. Privikavanje na ove prečace će vam biti od velike pomoći, a vi ćete se oslanjati na njih sve dok koristite Linux.