Programarea Shell este distractivă. Dar la fel și Python. Oamenii cu fondul C sau, cel mai important, cei care folosesc Windows nu vor fi de acord. Oamenii tind adesea să prefere utilizarea unei interfețe bazate grafic decât cele ale liniei de comandă. Dar este atât de greșit. Interfața grafică de utilizator este destinată persoanelor care cred că software-ul face ceea ce descrierea sa spune că face. Dar nu este întotdeauna cazul. Mai ales în cazul ferestrelor de programare a shell-urilor în care virușii și malware-urile au creat un devastator care este de dimensiunea unei tornade. Deci, oamenii care folosesc o interfață de linie de comandă, de obicei, sunt de acord că ceea ce fac este corect și eu sunt de acord cu ei că au dreptate.

De multe ori te-ai blocat și întregul computer se blochează datorită unui software simplu bazat pe interfața grafică. Lucrul pe o interfață de linie de comandă este adesea mai elegant, mai rapid și, cel mai important, știi ce execuți. Dar, din nou, folosirea de scoici și programe de scriere nu este ceva ce toată lumea ar prefera să facă.

În plus, scrierea programelor în C sau Java ar fi de fapt mult mai rău decât utilizarea unui software grafic bazat pe interfața utilizatorului în Windows. Nu blestem C sau Java aici, doar că acestea nu sunt potrivite pentru utilizarea de zi cu zi. Și aici excelează limbaje de scripturi precum programarea Shell și Python. Așadar, astăzi suntem în război aici, care este mai potrivită pentru aplicații mai mici, dar și mai mari. Sau este faptul că le putem combina pe amândouă împreună și vom face ceva nou și mai bun din cele două. Haideți să aruncăm o privire mai profundă în amândoi și să vedem unde ne duce.

Scripturi Bash Shell

Scripturile Shell sunt cu adevărat nemaipomenite. Aproape că puteți face majoritatea lucrărilor dvs. într-o singură linie de cod. De exemplu, să spuneți, luați această bucată de cod: -

$ touch file.txt | echo -e 'salut \ n Nou \ n Lume \ n salut \ n Bună ziua' >> fișier.txt | file file.txt | sort | uniq | wc -l

Așa cum puteți vedea, multe scripturi shell se întâmplă aici, dar ce se întâmplă exact? Mai întâi „| 'este cunoscut sub numele de țeavă. Este utilizat pentru a transfera ieșirea unui fișier în altul. Sintaxa „atingere” este utilizată pentru a crea orice fișier, iar sintaxa ecografică este utilizată pentru a tipări orice declarație. Săgețile cu față dreaptă „>>” sunt utilizate pentru a insera ieșirea în orice fișier sau program. sintaxa „pisică” este utilizată pentru a citi conținutul unui fișier. Sortare este folosit pentru a sorta totul în ordine și „uniq” este folosit pentru a elimina duplicatele din sortare. „WC” este folosit pentru numărarea liniilor și -l este doar un steag pentru a le tipări. Deci, toate aceste comenzi înlănțuite fac următoarele.

  1. Mai întâi, un fișier este creat cu fișierul de nume cu extensia txt pentru a informa că este un fișier text.
  2. În al doilea rând, echo -e este utilizat pentru a imprima mai multe cuvinte în interiorul fișierului file.txt și „slash n” sau „\ n” este utilizat pentru a introduce o linie nouă sau pentru a trece la linia următoare.
  3. După introducerea șirurilor în fișier, fișierul este citit, sortat în ordine și transferat la sintaxa uniq pentru a elimina eventualele duplicate existente, care în cazul nostru este „salut”.
  4. În cele din urmă, tipărim numărul de linii folosind „wc -l” pentru a le număra și a le imprima pe ecranul terminalului.

Deci, deși mai sus este doar o linie de cod, poate avea tendința de a se complica atunci când se introduc mai multe condiții. Astfel, scripturile shell sunt bune, dar nu pot fi folosite pentru a face noi locuri de muncă tot timpul. Uneori, doriți ca lucrurile să fie mai simple, la fel de simple ca o interfață de utilizator grafică. Scripturile Shell sunt de fapt foarte bune pentru a rula scripturi batch și a face lucrări repetate, dar, în același timp, vin cu unele dezavantaje: -

  1. Scripturile Shell tind să devină extrem de complicate pe măsură ce devin mari.
  2. Reutilizarea scripturilor nu este aproape niciuna. Ce vreau să spun aici este că, scripturile bash sunt extrem de greu de inserat în C sau alte coduri Java.
  3. Funcțiile avansate, cum ar fi analizarea HTML nu sunt ușor disponibile pentru bash.

Cu toate acestea, există Python aici pentru salvare, și cel mai potrivit înlocuitor pentru aceeași. Dar este scriptul Bash Shell complet înlocuitor? Hai să aruncăm o privire.

Cursuri recomandate

  • Instruire de certificare online în J2EE Comprehensive
  • Pregătire profesională în programare R
  • Formare certificare online în programare Go
  • Instruire în programul Haskell

Scripturi Python Shell

Python este instalat implicit pe aproape toate sistemele Linux și UNIX. Uneori distribuția poate avea o versiune mai veche, dar poate fi actualizată printr-o simplă comandă. Programarea Python Shell este mult mai ușor de înțeles și mai curată pentru a scrie chiar și pentru începători. De asemenea, în mod implicit, Python are stilul de citire a imprimării Eval Loop, care ajută la încercarea de coduri noi în interpret. Dar doar folosirea python poate fi un pic dificilă fără ajutorul scripturilor bazh shell. În plus, în programul nostru precedent, am folosit sintaxa „uniq” pentru a elimina duplicatele, dar nu ne-a arătat care au fost duplicatele. Deci, permiteți să scrieți un program python pentru a face același lucru: -

#! / usr / bin / env pythonimport sys # importarea modulelor de sistem pentru a lucra cu directorul fileif __name__ == "__main __": # Începând cu un dicționar gol aici. Ceea ce se numește ordinea # Toate tastele din acest dicționar apar ca nume și valorile specificate pentru ele # va fi cantitatea de ori care va apărea acel nume specific.order = () # sys.stdin este un obiect utilizat pentru fișiere. Toate acele funcții la care se aplică

# un obiect de fișier poate fi utilizat și pentru sys.stdin.

pentru comandă în sys.stdin.readlines ():

order = order.strip ()

daca comanda in comenzi:

comenzi (comanda) + = 1

altceva:

comenzi (comanda) = 1

pentru comandă, numărați în comenzi.iteritems ():

sys.stdout.write („% d \ t% s \ n”% (numărare, comandă))

Acum, acest fișier citește mai întâi intrarea din obiectul sys.stdin. Toată ieșirea este scrisă în obiectul sys.stdout. După crearea acestui script, presupunând că l-ai numit ca fiind order.py, poți doar să execute următorul script shell în terminal și vei găsi numărul total al tuturor șirurilor duplicate.

$ cat file.txt | python order.py

În mod similar, îl putem sorta și folosind sintaxa sortării: -

$ cat file.txt | python order.py | sort -rn

Scripturi de programare Python Shell vs Bash Shell

Acum am văzut cum putem combina scripturi piton și shell pentru a crea un lanț de comenzi și a le executa împreună. Acum, să facem un pas mai departe și să vedem dacă Python poate înlocui în totalitate Bash Shell.

Vorbind despre programarea învelișului bash, din punct de vedere al performanței, bash învinge total crapurile din piton. Dar dacă o comparați cu tipuri de date și alte lucruri avansate, bash nu are prea multă compatibilitate. Timpul de pornire al unui script bash shell este de 2, 8 mili secunde, în timp ce cel de python este de 11, 1 mili secunde. Pentru a fi mai sincer, bashul este un limbaj cu scop general la fel ca Python, dar ambele au propriile atuuri și puncte slabe. Programarea Bash shell este terminalul implicit în majoritatea distribuțiilor Linux și astfel va fi întotdeauna mai rapid din punct de vedere al performanței. Dar asta înseamnă că poate înlocui total Python? Nu. Atunci când se ocupă de programe mari, Bash va continua să se complice, în timp ce Python nu. Python poate fi folosit și ca limbaj orientat pe obiecte din câte știu eu. Dacă sunteți doar un începător, atunci este posibil să nu știți nici măcar diferența dintre cei doi. Python este cel mai elegant limbaj de script, chiar mai mult decât Ruby și Perl. Pe de altă parte, programarea Bash shell este de fapt foarte excelentă în realizarea ieșirii unei comenzi în alta.

Shell Scripting este simplu și nu este la fel de puternic ca pitonul. Nu se ocupă de cadre și este dificil să te descurci cu programe legate de web utilizând Shell Scripting. Adevărata putere a scripturilor shell se află în editorul sau textul Stream, programele Awk și aplicații similare.

Manipularea fișierelor și dezvoltarea aplicațiilor web

Scripturile Bash Shell funcționează impecabil și rapid atunci când aveți de-a face cu fișiere. Prin manipularea fișierelor, mă refer la copierea, clonarea discurilor, scrierea aplicațiilor de rezervă pentru rețea, serverele ftp, stocarea intrărilor de fișiere și accesarea acestora ulterior și transferul respectivelor ieșiri mai târziu la altceva cu ajutorul pipe. Pe de altă parte, Python este mai util pentru a face față cu bucăți de date, cum ar fi citirea datelor dintr-un fișier și procesarea datelor. Dacă sunt mai specific, bash nu este chiar un limbaj de programare. Este mai mult o simplă coajă care a fost orientată spre tratarea fișierelor de sistem folosind linia de comandă pentru ca procesul să fie mai rapid și mai rapid.

Astfel, dacă cunoașteți corect programarea bash shell, atunci știți și că variabilele și scopurile în bash sunt extrem de limitate. Pe de altă parte, Python este mai mult un limbaj de script shell decât limbajul de programare. Dacă denumim Bash ca un limbaj de programare, este mai mult ca să spunem Python este un limbaj de programare shell orientat pe obiecte. Se poate trata cu python într-un mod orientat pe obiecte, dar nu va fi niciodată orientat doar pe obiecte precum C sau Java. În mod similar, Bash este însă un limbaj de script; este mai bine folosit ca ceva care este necesar să se ocupe rapid de fișiere, mai degrabă decât să scrie programe mari în el. De asemenea, deși Python este un limbaj de script de shell, de fapt se ocupă de propriul său shell. De exemplu, mutarea tuturor fișierelor care se află pe Desktop într-un alt director aleatoriu prin intermediul shell-ului Bash ar merge așa ceva:

$ cd Desktop $ mv * randomDirectory

Dar, pe de altă parte, a face același lucru în python este ceva mai complicat. Se întâmplă ceva de genul: -

import os, glob pentru fname în glob.glob ('*'): os.rename (fname, 'randomdirectory')

Cu toate acestea, în cel mai bun caz, se poate face cel mai compact în acest mod: -

import os, glob (os.rename (fname, 'randomdirectory') pentru fname în glob.glob ('*'))

Când învățați orice limbă, oamenii vă vor spune adesea cum să curățați elementele de bază și toate aceste lucruri, dar nu vă vor spune cum să abordați mai întâi sistemul în sine, care este cel mai important. Și pe lângă asta, Python și Bash sunt un limbaj de script Shell, ceea ce înseamnă că ambele sunt dezvoltate în principal pentru a trata sistemul și fișierele sale.

Vă aflați în Python?

Da, ai citit-o corect. Până acum am citit despre cum putem introduce scripturile Python în Shell. Dar putem introduce, de asemenea, Shell Script-uri în scripturile lui python. Luați acest exemplu, de exemplu: - Introduceți „apt-get update” în shell-ul python? Evident, veți primi unele erori ca sintaxa nevalidă. Așadar, chestia este dacă doriți să utilizați codurile bash precum „ls, cd, mv” sau orice altceva în python, va trebui să importați modulul de operare. Acum, faceți un lucru, copiați următorul cod și lipiți-l în Shell of python și verificați cum funcționează: -

$ python >>> din sistemul de importare * >>> sistem („sudo apt-get update”)

Și acum funcționează … da. Acesta este un alt mod de a obține împreună scripturile piton și bash. În plus, există un alt modul python care este special construit pentru a lucra cu bash. Acest modul este cunoscut sub denumirea de pexpect. Pexpect este un modul python care este utilizat pentru a genera procesele copilului, pentru a le controla și pentru a returna rezultatele conform cererii procesului copil. Modulul pexpect are o interfață extrem de ușoară pentru a importa modulele necesare și procesele copil în interiorul acestuia și să le execute în consecință. Unul are nevoie de pip să fie instalat în sistemul lor pentru a instala pexpect și unul poate instala modulul după cum urmează: -

$ pip instala pexpect

Versiunea Pexpect are nevoie de versiunea python mai mare de 3.3 sau în mod specific 2.7.

Există de fapt mult mai mult pentru a amesteca python și bash și nimic nu funcționează la fel de bine ca un amestec de script de Python și Bash. Acest amestec face script-ul rapid datorită versiunii Bash și incluzând funcțiile avansate din cauza Python. Se poate citi despre aspectul și documentația sa la https://pexpect.readthedocs.org/online.

Articole recomandate

Iată câteva articole care vă vor ajuta să obțineți mai multe detalii despre Scripturile Bash și Python, așa că treceți doar prin link.

  1. Python vs JavaScript-Diferențe de valoare
  2. Top 25 Amazing Python Interview Întrebări și răspunsuri
  3. Python vs JavaScript Differences
  4. Programare R vs Python
  5. Manipularea fișierelor PHP