Înlănțuirea comenzilor Linux înseamnă, combinând mai multe comenzi și făcându-le să se execute pe baza comportamentului operatorului folosit între ele. Înlănțuirea comenzilor în Linux este ceva de genul că scrieți scripturi scurte de shell la shell în sine și executându-le direct de la terminal. Înlănțuirea face posibilă automatizarea procesului. Mai mult, o mașină nesupravegheată poate funcționa într-un mod mult sistematic cu ajutorul operatorilor de înlănțuire.
Citește și:Cum se utilizează expresii awk și regulate pentru a filtra textul în fișiere
Acest articol are ca scop aruncarea luminii asupra celor utilizate frecvent operatori de lanț de comandă, cu descrieri scurte și exemple corespunzătoare care cu siguranță vă vor crește productivitatea și vă permit să scrieți coduri scurte și semnificative pe lângă reducerea încărcării sistemului, uneori.
Funcția de „&‘Este de a face comanda să ruleze în fundal. Tastați doar comanda urmată cu un spațiu alb și „&‘. Puteți executa mai multe comenzi în fundal, într-o singură încercare.
Rulați o comandă în fundal:
[e-mail protejat]: ~ $ ping c5 www.tecmint.com &
Rulați două comenzi în fundal, simultan:
[e-mail protejat]: / home / tecmint # apt-get update & apt-get upgrade &
Operatorul de punct și virgulă face posibilă rularea, mai multe comenzi într-o singură mișcare și executarea comenzii are loc secvențial.
[e-mail protejat]: / home / tecmint # apt-get update; apt-get upgrade; test mkdir
Mai întâi se va executa combinația de comenzi de mai sus Actualizați instrucțiune, atunci modernizare instrucțiune și în cele din urmă va crea un „Test'Director sub directorul de lucru curent.
ȘI Operator (&&) ar executa a doua comandă numai, dacă executarea primei comenzi REZULTATE, adică starea de ieșire a primei comenzi este 0. Această comandă este foarte utilă în verificarea stării de execuție a ultimei comenzi.
De exemplu, vreau să vizitez site-ul web tecmint.com folosind comanda link-uri, în terminal, dar înainte de asta trebuie să verific dacă gazda este Trăi sau nu.
[e-mail protejat]: / home / tecmint # ping -c3 www.tecmint.com && links www.tecmint.com
SAU Operator (||) seamănă mult cu un „altceva'Declarație în programare. Operatorul de mai sus vă permite să executați a doua comandă numai dacă executarea primei comenzi eșuează, adică starea de ieșire a primei comenzi este „1‘.
De exemplu, vreau să execut „apt-get update‘Din cont non-root și dacă prima comandă eșuează, atunci a doua ‘Linkuri www.tecmint.com‘Comanda se va executa.
[e-mail protejat]: ~ $ apt-get update || linkuri tecmint.com
În comanda de mai sus, din moment ce utilizator nu i s-a permis Actualizați sistem, înseamnă că starea de ieșire a primei comenzi este ‘1’ și de aici ultima comandă „linkuri tecmint.com'Este executat.
Ce se întâmplă dacă prima comandă este executată cu succes, cu o stare de ieșire „0‘? Evident! A doua comandă nu se va executa.
[e-mail protejat]: ~ $ mkdir test || linkuri tecmint.com
Aici, utilizatorul creează un folder „Test„În directorul său de acasă, pentru care utilizatorul este permis. Comanda executată cu succes dând o stare de ieșire ‘0„Și, prin urmare, ultima parte a comenzii nu este executată.
NU Operator (!) seamănă mult cu un „cu exceptia' afirmație. Această comandă va executa toate, cu excepția condiției furnizate. Pentru a înțelege acest lucru, creați un director „tecmint„În directorul de acasă și„CD'La ea.
[e-mail protejat]: ~ $ mkdir tecmint [e-mail protejat]: ~ $ cd tecmint
Apoi, creați mai multe tipuri de fișiere în folderul „tecmint‘.
[e-mail protejat]: ~ / tecmint $ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html
Vedeți că am creat toate fișierele noi din dosarul „tecmint‘.
[e-mail protejat]: ~ / tecmint $ ls a.doc a.html a.pdf a.xml b.doc b.html b.pdf b.xml
Acum ștergeți toate fișierele cu excepția „html„Înregistrați dintr-o dată, într-un mod inteligent.
[e-mail protejat]: ~ / tecmint $ rm -r! (*. html)
Doar pentru a verifica, ultima execuție. Enumerați toate fișierele disponibile folosind Comand.
[e-mail protejat]: ~ / tecmint $ ls a.html b.html
Operatorul de mai sus este de fapt o combinație de „ȘI' și 'SAU‘Operator. Seamănă mult cu un „dacă-altfel' afirmație.
De exemplu, să facem ping to tecmint.com, dacă succesul ecou ‘Verificat„Altfel ecou”Gazdă jos‘.
[e-mail protejat]: ~ / tecmint $ ping -c3 www.tecmint.com && echo "Verificat" || ecou „Host Down”
PING www.tecmint.com (212.71.234.61) 56 (84) octeți de date. 64 octeți de pe www.tecmint.com (212.71.234.61): icmp_req = 1 ttl = 55 timp = 216 ms 64 octeți de pe www.tecmint.com (212.71.234.61): icmp_req = 2 ttl = 55 timp = 224 ms 64 octeți de pe www.tecmint.com (212.71.234.61): icmp_req = 3 ttl = 55 timp = 226 ms www.tecmint.com statistici ping 3 pachete transmise, 3 primite, 0% pierdere pachete, timp 2001ms rtt min / avg / max / mdev = 216.960 / 222.789 / 226.423 / 4.199 ms Verificat
Acum, deconectați-vă conexiunea la internet și încercați din nou aceeași comandă.
[e-mail protejat]: ~ / tecmint $ ping -c3 www.tecmint.com && echo "Verified" || ecou „Host Down”
ping: gazdă necunoscută www.tecmint.com Gazdă jos
Acest TUB operatorul este foarte util acolo unde ieșirea primei comenzi acționează ca o intrare la a doua comandă. De exemplu, canalizați ieșirea din „ls -l' la 'Mai puțin‘Și vedeți ieșirea comenzii.
[e-mail protejat]: ~ $ ls -l | Mai puțin
Combinați două sau mai multe comenzi, a doua comandă depinde de executarea primei comenzi.
De exemplu, verificați dacă un director „cos„Este disponibil sau nu și produce ieșire corespunzătoare.
[e-mail protejat]: ~ $ [-d bin] || {echo Directory nu există, creând directorul acum.; mkdir bin; } && echo Directory există.
Operatorul face posibilă executarea comenzii în ordine de prioritate.
Command_x1 && Command_x2 || Command_x3 && Command_x4.
În pseudo-comanda de mai sus, ce se întâmplă dacă Command_x1 eșuează? Niciunul dintre Command_x2, Command_x3, Command_x4 ar fi executat, pentru asta îl folosim Operator de precedență, la fel de:
(Command_x1 && Command_x2) || (Command_x3 && Command_x4)
În pseudo-comanda de mai sus, dacă Command_x1 eșuează, Command_x2 de asemenea, eșuează, dar încă Command_x3 și Command_x4 execută depinde de starea de ieșire a Command_x3.
Operator de concatenare (\) așa cum specifică și numele, este utilizat pentru a concatena comenzi mari pe mai multe linii din shell. De exemplu, comanda de mai jos va deschide fișierul text test (1) .txt.
[e-mail protejat]: ~ / Descarcă $ nano test \ (1 \). Txt
Asta este tot pentru acum. Urmează un articol interesant foarte curând. Până atunci rămâneți atent, sănătos și conectat la Tecmint. Nu uitați să oferiți feedbackul dvs. valoros în secțiunea noastră de comentarii.