Introducere în Linux
Ce este Linux?
Linux este kernel-ul (nucleul), are rolul de a:
- Executa programe;
- Gestiona operațiuni cu fișiere;
- Conecta periferice, etc.

Kernel înseamnă sâmbure în engleză, iar această denumire provine de la faptul că Linux „înflorește” pe măsură ce adăugăm programe deasupra lui, el fiind la baza lor. De sine stătător nu face nimic, avem nevoie de o modalitate pentru a-l comanda...
Sistemul de operare
Pentru a forma un sistem de operare complet folosind kernel-ul Linux, putem utiliza colecția de programe GNU. Aceasta include comenzile și utilitarele pe care le folosim zilnic în terminal. Comunică prin apeluri de sistem cu kernel-ul pentru a îndeplini sarcini.
Schema finală a sistemului
Combinând colecția de programe GNU și kernel-ul Linux, obținem sistemul de operare cu următoarea schemă:

Distribuții de Linux
O distribuție de Linux reprezintă un sistem de operare complet bazat pe kernel-ul Linux care poate include utilitarele GNU, mediul desktop, drivere și alte programe utile preinstalate.
Cele mai populare distribuții:
Prin urmare, atunci când vorbim despre Linux, ne referim la baza cea mai de jos a sistemului, deci ar fi greșit să judecăm kernel-ul bazat pe interfața grafică, programele preinstalate sau alte lucruri de suprafață, acelea fiind responsabilitatea distribuției.
Comenzi de bază
Pentru introducerea comenzilor, se utilizează exclusiv terminalul, care are următoarea structură:

Listarea fișierelor
Comanda „ls” afișează o listă cu fișierele și directoarele din directorul actual.

Folosind argumentul „-l” se pot vedea metadate suplimentare.

Accesarea directoarelor
Comanda „cd” (change directory) schimbă directorul în care ne aflăm.

Crearea fișierelor
Comanda „touch” creează un fișier cu numele specificat.

Editarea fișierelor
Nano este un editor de fișiere simplu care poate fi utilizat în terminal. Poate fi deschis folosind comanda: nano <fișier>
Exemplu:

Comanda de mai sus va deschide editorul pentru fișierul „main.c”:

În terminal nu putem folosi mouse-ul ca într-o intefață obișnuită, așa că editorul acceptă comenzi de la tastatură:
- CTRL + S: salvare
- CTRL + W: căutare text
- CTRL + X: ieșire
Mai multe comenzi se află în partea de jos, simbolul „^” reprezentând tasta CTRL.
Ștergerea fișierelor și a directoarelor
Fișierele pot fi șterse folosind comanda „rm” (remove), alături de fișierul dorit a fi șters.

Dacă directorul „proiect” era gol, se putea utiliza comanda „rmdir proiect”.
Crearea directoarelor
Comanda „mkdir” (make directory) creează un director cu numele specificat.

Mutarea unui fișier sau a unui director
Comanda „mv” (move) mută fișierul/directorul din primul argument în locația din al doilea argument.

De asemenea, comanda „mv” poate fi utilizată pentru a redenumi un fișier.

Verificarea stării sistemului
Pentru a verifica utilizarea memoriei și a procesorului și pentru a închide procesele blocate, putem folosi utilitarul htop.

Pe anumite distribuții, este posibil ca acest utilitar să nu fie preinstalat. Mai târziu veți afla cum să instalați programe noi.
Structura sistemului de fișiere
Sistemul de fișiere în Linux urmează o structură de arbore în care toate directoarele și fișierele încep de la rădăcină, reprezentată de simbolul „/”. Fișierele și directoarele au metadate pentru data modificării, permisiuni, proprietar(i) și dimensiune.
În Linux, dispozitivele și unitățile de stocare sunt reprezentate de fișiere sau de directoare. Nu există „C:/”, există doar rădăcina „/”. Exemplu:

- Hard disk extern: /media/hdd2/
- Stick USB: /media/usb/
- Cameră video: /dev/video0
Directoarele din rădăcină

În ilustrație se află cele mai importante directoare din rădăcină, acestea fiind:
- /bin - fișiere binare (executabile), utilitare, comenzi esențiale
- /dev - (device) dispozitive, periferice
- /etc - configurațiile sistemului gazdă
- /home - fișierele utilizatorilor
- /opt - pachete de aplicații suplimentare (opționale)
- /tmp - fișiere temporare
- /usr - utilitarele și aplicațiile utilizatorului
Parcurgerea directoarelor
Directoarele (dosarele) sunt separate de bare oblice. De, exemplu pentru a accesa directorul „docs” al utilizatorului „edward”:

Putem folosi adresarea /home/edward/docs.
Pentru a ne referi la directorul anterior, folosim două puncte.

Caracterul „~” este o scurtătură pentru directorul personal al utilizatorului actual.

Spre deosebire de Windows, fișierele executabile nu au extensie.

Pot fi executate în terminal, de exemplu:

Permisiuni
Pentru directoare și fișiere există permisiunile:
- Scriere (w) - fișierele pot fi modificate;
- în directoare, se pot crea, șterge și redenumi fișiere
- Citire (r) - fișierele pot fi deschise și vizualizate;
- în directoare, se poate vedea lista conținuturilor (comanda ls)
- Executare (x) - fișierele pot fi executat ca programe.

Permisiunile pot fi acordate următoarelor clase:
- Utilizator - proprietarul fișierului
- Grup - utilizatorii care fac parte din grupul fișierului
- Alții - orice alt utilizator din sistem
Utilizatori
Utilizatorul cu acces deplin (administrator) se numește root
- Poate instala orice program;
- Poate modifica toate configurările sistemului;
- Poate modifica sau șterge orice fișier;
- De obicei este creat automat.
Utilizatorii obișnuiți au acces limitat
- Nu pot accesa fișiere care nu le aparțin;
- Pot executa programe;
- Nu pot modifica configurări de sistem;
- Au acces deplin doar în directorul lor personal (/home/<nume>).
Comanda sudo
Pentru a obține temporar drepturi de „root”, se va utiliza prefixul sudo în fața oricărei comenzi pentru care avem nevoie de acces special. Exemplu:

Dacă încercăm să instalăm un program ca și utilizator obișnuit (hp) și fără prefixul sudo, primim o eroare de permisiune refuzată.

După ce am adăugat prefixul sudo, instalarea funcționează.
Managerul de pachete
Spre
deosebire de Windows sau macOS, Linux se bazează pe un sistem special pentru instalarea, actualizarea și gestionarea
programelor instalate. Managerul de pachete implicit pentru distribuțiile bazate pe Debian este
APT.
APT instalează automat toate necesitățile unui program și șterge eficient toate rămășițele la dezinstalare. Fișierele programelor sunt protejate și nu pot fi modificate de utilizatori. Pentru noi, înseamnă că nu este nevoie să căutăm pe internet installere.
Instalarea pachetelor

Dezinstalarea pachetelor

Actualizarea pachetelor
Primul pas este să facem managerul de pachete să „ia la cunoștință” actualizările disponibile, folosind comanda apt update.

Se poate observa în ultimul rând al ieșirii comenzi că 3 pachete pot fi actualizate. Pentru a efectua actualizarea pachetelor, folosim comanda sudo apt upgrade.

SSH
Folosind SSH (Secure Shell) ne putem conecta la alte calculatoare/servere care utilizează Linux. Pentru a ne conecta, folosim comanda ssh în terminal cu sintaxa:

După conectare, este ca și cum am folosi terminalul direct pe serverul la care ne-am conectat. Exemplu de o sesiune completă:

Acest articol a fost adaptat dintr-o prezentare PowerPoint.
Îmi place să apăs pe taste în ordinea potrivită astfel încât să se aprindă luminițele cum vreau eu, adică să programez.



