Terminalele pentru comenzi de pe un computer

Atunci cand lucram pe un computer, fie ca vorbim de un PC desktop sau laptop, cu Windows, macOS sau Linux ca sisteme de operare instalate, actiunile si operatiunile pe care le executam pot fi realizate in doua moduri principale.

Prima modalitate este din interfata grafica (GUI) oferita de acel computer, prin care interactionam efectiv cu programele software instalate, prin instrumentele periferice precum mouse-ul ca sa dam click-uri. De exemplu, daca vrem sa inchidem un folder deschis, dam click pe butonul de Close (X).

Insa exista si o a doua modalitate, ceva mai putin intuitiva publicului larg, dar care ofera o perspectiva mai apropiata de modul propriu-zis de functionare al unui computer, si anume prin scrierea si executarea de comenzi specifice in cadrul unui terminal. In continuare ne vom concentra pe aceasta componenta a unui PC, si care sunt principalele astfel de interfete.

Ce este un terminal?

Ca sa intelegem mai bine ce urmeaza sa discutam, trebuie sa explicam intai de toate ce este un terminal. Cu siguranta multa lume a auzit de aceasta notiune si o recunoaste vizual imediat, fiind ceva destul de caracteristic unui computer, si este incorporata ideii ca ”hackerii il folosesc cel mai mult”, lucru ce nu e mereu adevarat.

Definindu-l intr-o maniera cat mai simpla, un terminal reprezinta o interfata grafica prin care noi, utilizatorii simpli sau specializati, putem introduce anumite comenzi, iar terminalul le va executa pentru noi. Practic, terminalul este o consola de sistem ce ruleaza anumite scripturi in spate, ale caror rezultate noi le observam empiric pe ecran sau in timpul folosirii acelei masini. Un termen frecvent intalnit este cel de command line interface (CLI), prin care ne raportam generic la un terminal.

Terminalul Commnad Prompt de pe Windows

Un terminal de regula este caracterizat prin faptul ca are o interfata relativ simpla, fara prea multe elemente grafice, adesea cu un fundal de culoare neagra (sau albastra), iar continutul este organizat pe linii de text unde putem sa introducem de la tastatura anumite linii de comanda care vor fi astfel rulate. Din punct de vedere tehnic, fiecare terminal este in sine o aplicatie, sunt diferite din punct de vedere al caracteristicilor lor, unele sunt specifice anumit sisteme de operare, altele sunt mai avansate sau mai simple.

Care sunt terminalele pe care le intalnim pe un PC?

Astfel, vom vedea care sunt principalele terminale cu care putem interactiona pe un computer, si de ce e bine sa avem idee despre existenta lor si sa le folosim in anumite situatii. Terminalele au o istorie indelungata in spate, sunt destul de numeroase in functie de tipul de computer sau OS la care ne raportam, si ar dura prea mult daca am intra in amanunte istorice sau prea tehnice, de aceea ne vom limita doar la o trecere in revista a celor mai cunoscute astazi.

1. Command Prompt

Primul terminal despre care vom vorbi, probabil si cel mai cunoscut printre utilizatorii de Windows, este Command Prompt. Abreviat de multe ori ”CMD” sau Cmd.exe, Command Prompt este astazi terminalul default al computerelor care au drept sistem de operare Windows.

Fiind una dintre cele mai vechi astfel de console, creata in 1987, Cmd.exe este destul de populara pentru simplitatea sa, fiind folosit pentru comenzi relativ simple (ex.: navigarea printre directoare) sau pentru interactiunea cu anumite aplicatii (precum sistemul de versionare Git).

Accesarea consolei Command Prompt se face destul de simplu, scriem in bara de cautare de la Start ”cmd” si click / Enter pe primul rezultat. Initial, locatia de accesare prin acest terminal porneste de la folderul cu username-ul nostru de pe acel computer. Daca vrem sa navigam spre alt folder, folosim comanda cd <numele folderului>, sau cd.. daca vrem sa navigam inapoi.

2. PowerShell

Al doilea terminal despre care trebuie sa amintim este PowerShell. Spre deosebire de Command Prompt, PowerShell este un terminal mai puternic si intalnit pe toate sistemele de operare principale (Windows, macOS, Linux).

Consola PowerShell pe un Windows

Aceasta consola are mai multe abilitati decat standardul Cmd.exe deaorece poate, printre altele, sa ruleze comenzi care necesita drepturi privilegiate de executie, adica drepturi de administrator. Sunt destul de multe diferente intre Command Prompt si PowerShell, precum cele legate de sintaxa diferita a unor comenzi, faptul ca PowerShell ruleaza comenzi mai avansate si este un tool mult mai moder, fiind inventat de catre Microsoft in 2006. De asemenea, puterile aditionale si capacitatea de acces la alte librarii de scripting sunt de departe trasaturi mai dezvoltate la PowerShell decat la CMD.

De exemplu, daca dorim sa instalam niste programe mai speciale care necesita permisiuni de admin, atunci vom folosi PowerShell. Recent, Microsoft a adaugat si protocolul sudo preluat din lumea Linux si integrat in OS-ul Windows 11, ceea ce sporeste puterea terminalului in cauza.

3. Windows Subsystem for Linux (WSL)

Un alt terminal care a devenit din ce in ce mai popular si folosit in ultimii ani printre utilizatori este WSL, abrevierea de la Windows Subsystem for Linux. Ce reprezinta mai concret acesta? Dupa cum indica si numele sau, WSL este o componenta dezvoltata de Microsoft prin care a integrat terminalul specific sistemului Linux in sistemul de operare Windows.

Practic, este un terminal alternativ care imita mediul (environment) de Linux pe computerul nostru cu Windows, fara a fi nevoie sa schimbam OS-ul sau sa folosim o masina virtuala (Virtual Machine) ca sa rulam astfel de comenzi specifice de Linux. Exista instructiuni destul de clare despre cum putem instala WSL pe computerul actual.

Aceasta este una dintre cele mai tinere console de sistem, prima sa iteratie fiind lansata in 2016, iar a doua (WSL 2.0) in 2019. Pasionatii de scripting si tot ce tine de partea de network sau DevOps pot astfel experimenta si exersa usor partea de Linux pe un PC cu Windows, cu un set up nu foarte complex.

4. Git CMD & Git Bash

Alte terminale extrem de utile si folosite preponderent de catre cei care lucreaza in domeniul IT sau de catre cei care sunt pasionati si vor sa invete pentru o cariera de acest fel sunt cele oferite implicit de sistemul de versionare Git.

Dupa ce instalam acest sistem de versionare pe PC-ul nostru, ca sa accesam terminalele de CMD sau Bash oferite de Git nu trebuie decat sa cautam in bara de start ”Git CMD” sau ”Git Bash” si sa dam click pe unul din ele. Din aceste terminale putem executa extrem de usor liniile de comanda specifice lucrului cu sistemul Git si cu repositories de pe GitHub, exersand astfel lucrul real cu proiecte de coding, versionare, si tot flow-ul ce tine de pull – add – commit – push.

Git CMD si Git Bash

Ca o mentiune suplimentara, pe langa cele 2 terminale, Git-ul mai ofera si ceea ce se cheama Git GUI, adica interfata grafica proprie prin care putem realiza cam aceleasi actiuni ca din terminal, doar ca ne folosim de butoane intuitive. Putem si de aici sa cream un repo, sa face un commit sau push, ca o alternativa daca nu vrem sa folosim terminalele cu linii de comanda pentru Git.

Aplicatia Git GUI

5. Terminal din macOS

Si cei de la Apple au dezvoltat o consola de sistem proprie care are rolul unui terminal pentru introducerea si executarea de comenzi dedicate, si anume aplicatia ”Terminal”. Aceasta este destul de asemanatoare ca grafica si functionalitati cu terminalul Command Prompt de pe Windows, fiind un echivalent destul de folosit de catre cei care detin computere cu macOS pentru aceasta parte de operatiuni.

Interfata lui Terminal din macOS. Sursa imaginii.

Terminal are o documentatie destul de solida si bine elaborata, astfel incat cei care vor sa aibe un sprijin in a invata conceptual despre console, ce fac acestea si cum se lucreaza efectiv cu ele pot sa o foloseasca foarte bine drept suport de studiu.

Mituri despre terminale si importanta lor

In general, exista unele idei si conceptii raspandite despre terminale si folosirea lor in sfera profesionala. Probabil cea mai intalnita idee este aceea ca doar persoanele super-ultra-mega avansate din punct de vedere al cunostintelor tehnice folosesc terminalele deaorece acolo se executa numai chestii complexe, ceea ce este o idee gresita. Dupa cum am explicat si anterior, comenzile pe care le putem rula in consola sunt variate, de la cele mai simple pana la altele cu adevarat mai complexe.

De aceea, nu doar cei cu 20 de ani experienta folosesc terminalul, ci absolut orice doritor si pasionat care vrea sa incerce acest mod de lucru, sau care vrea sa invete lucrul cu Git-ul din linie de comanda, de exemplu. De asemenea, se considera ca tot ce se intampla in terminal e foarte greu de inteles, ceea ce este iarasi exagerat. Multe lucruri basic sunt chiar intuitive, de exemplu comanda de CMD mkdir deriva de la make directory, adica sa cream un folder nou.

Multor persoane aflate la inceputul invatarii le este putin teama sa incerce sa lucreze cu terminalele, lucru justificat de faptul ca poate nu e la fel de intuitiv ca interfata grafica. Lucru adevarat, insa in zilele noastre nu este deloc imposibil sa invatam a lucra cu acest instrument care in multe contexte ne poate face sa fim mai eficienti. Internetul este plin de articol, documentatii si tutoriale care mai de care mai diverse, si luate usor usor, terminalele isi pot dezvalui secretele cu timpul, comparativ cu perioada anilor 90 sau inceputul anilor 2000 cand nu exista acces la resurse prea multe.

Pe langa asta, terminalele au evoluat in sine. Astazi au un aspect ceva mai prietenos comparativ cu deceniile trecute, multe ofera sprijin prin comenzile de help, si sunt integrate in multe alte locuri. De exemplu, editoarele de cod (IDE) au integrate in ele direct terminalele din computerul pe care il folosim, Command Prompt sau PowerShell. Astfel, avand doar IDE-ul deschis, putem sa rulam un anumit cod direct de acolo din terminal, fara a mai fi nevoiti sa avem o aplicatie suplimentara deschisa, care sa manance resurse.

Terminalele ocupa un rol important in lucrul de zi cu zi din industria IT si nu numai, utilizarea lor fiind justificata in cele mai multe cazuri de rapiditatea introducerii comenzilor si a executiei acestora. Un avantaj superior este si acela ca daca dorim sa rulam comenzi cu drepturi speciale de administrator, atunci un terminal bine configurat ne poate ajuta extrem de mult.

Concluzii

In incheiere, terminalele reprezinta o componenta esentiala a oricarui computer, indiferent de sistemul de operare sau consola de sistem la care facem referire. Ele sunt aplicatii prin care putem executa operatiunile de baza sau unele mai avansate prin linii de comanda dedicate, astfel incat respectivul Shell va executa respectiva actiune pentru noi.

Chiar daca par mai avansate si multi oameni aflati la inceput se tem sa le foloseasca pentru ca nu sunt la fel de intuitive precum folosirea interfetei grafice, terminalele se pot invata destul de usor cu exercitiu in timp, si ne pot ajuta sa intelegem mai bine anumite procese ori sa realizam mai rapid anumite procese, fiind utile inclusiv pe partea de testare automata sau daca vrem sa invatam partea de Bash scripting.

(Re)surse despre terminale

Detalii generale despre System console, computer terminal si componenta Shell

Folosirea lui Command Prompt

Despre Windows Subsystem for Linux si instalarea sa pe un PC cu Windows

O comparatie detaliata intre terminalele Command Prompt si PowerShell

Despre situatiile in care sa folosesti Command Prompt sau PowerShell gasesti informatii aici si aici.

Documentatie mai ampla de Shell scripting de la Apple si cateva date generale despre aplicatia Terminal de pe macOS.

Mircea-Gabriel Macarie

https://www.linkedin.com/in/mirceamacarie/

Tech enthusiast și QA engineer, membru al comunității Vlog De IT. Interesat de testare software (QA) în general, de User Experience și Web Development.

Related post

Leave a Reply

Your email address will not be published. Required fields are marked *