LINUX

Învață Linux și Bash: comenzi de terminal și scripturi explicate cu exemple

158 de comenzi 9 categorii

Linux este sistemul de operare open-source care alimentează infrastructura digitală a lumii: de la peste 95% dintre primele 1 milion de servere web din lume și supercomputerele globale de top, până la platformele cloud (AWS, Google Cloud, Azure), containerele Docker / Kubernetes și sistemele embedded. Construit pe baza nucleului creat de Linus Torvalds în 1991 și îmbogățit de utilitarele Proiectului GNU, Linux se distinge prin stabilitate excepțională, performanță predictibilă și o filozofie modulară orientată pe automatizare prin linia de comandă (terminalul Bash).

Această secțiune oferă o documentație completă și orientată pe producție în limba română pentru Linux și scripting Bash: de la navigarea sistemului de fișiere, procesarea fluxurilor text (awk, sed, grep) și permisiuni speciale (SUID, SGID, Sticky Bit), până la administrarea modernă a proceselor (systemd, journalctl, crontab), diagnosticarea rețelei (ss, ip, tcpdump) și tehnici avansate de hardening și depanare de servere.

Arhitectura Kernel-ului Linux și Stratul de Apeluri de Sistem (Syscalls)
# Structura ierarhică a unui sistem de operare Linux:
# 1. User Space (Ring 3 pe x86-64):
#    - Aplicațiile tale web (Nginx, Node.js, Python), shell-ul Bash și utilitarele CLI.
#    - Memorie virtuală izolată; o aplicație nu poate accesa direct componentele hardware!
# 2. GNU C Library (glibc / musl):
#    - Interfața standard API care traduce apelurile funcțiilor C în apeluri de sistem.
# 3. System Call Interface (Syscalls):
#    - Poarta securizată de trecere din User Space în Kernel Space (Ring 0):
#      ex: sys_read(), sys_write(), sys_openat(), sys_clone(), sys_epoll_create().
# 4. Linux Kernel Space (Ring 0):
#    - Nucleu monolitic cu module dinamice încărcabile (Loadable Kernel Modules - LKM).
#    - Gestionează planificatorul de procese (Scheduler CFS/EEVDF), stiva TCP/IP,
#      sistemele de fișiere (ext4, XFS, Btrfs) și driverele hardware.
# 5. Hardware fizic: Procesor CPU, memorii RAM, discuri NVMe/SSD, plăci de rețea NIC.

Standardul Ierarhiei Sistemului de Fișiere (FHS) & „Totul este un fișier”

Un principiu cardinal moștenit din filozofia UNIX afirmă că totul în Linux este reprezentat printr-un fișier: fișierele de configurare sunt text, directoarele sunt fișiere speciale care conțin liste de inoduri, dispozitivele fizice sunt noduri de fișiere în /dev, iar starea internă a memoriei kernel-ului este expusă în pseudocăi virtuale:

Director FHS Rol & Conținut Tipic Natură pe Disc
/etc Fișierele statice de configurare la nivel de sistem (ex: /etc/nginx/, /etc/hosts, /etc/fstab). Persistent fizic pe disc.
/var Date variabile dinamice: fișiere de loguri (/var/log), baze de date MySQL/Postgres (/var/lib), cozi de mail (/var/spool). Persistent fizic pe disc.
/proc Sistem de fișiere virtual generat direct în memoria RAM de către kernel. Expune statistici live despre hardware și fiecare proces activ (/proc/PID/). Virtual (0 octeți pe disc).
/sys Interfața sysfs: structura arborescentă a dispozitivelor conectate, driverelor și parametrilor ajustabili de kernel. Virtual (0 octeți pe disc).
/dev Noduri de dispozitive hardware: discuri fizice (/dev/nvme0n1), generatoare de entropie (/dev/urandom), gaura neagră (/dev/null). Gestionat de daemonul udev.
/tmp Fișiere temporare ale aplicațiilor. Pe distribuțiile moderne este adesea montat ca tmpfs (memorie RAM volatilă curățată la boot). Temporar.

Ciclul de Viață al Proceselor, Semnale POSIX și Containerizare

La pornirea sistemului, nucleul lansează primul proces din User Space: PID 1 (în sistemele moderne, daemonul systemd). Toate celelalte procese sunt create printr-un mecanism ierarhic de tip fork-exec (procesul părinte apelează clone()/fork() pentru a se duplica, apoi execve() pentru a încărca noul binar).

Semnale POSIX Esențiale pentru Controlul Proceselor
# Trimiterea semnalelor către un proces prin comanda 'kill -SEMNAL PID':
# 1. SIGTERM (Semnal 15 - Implicit): Cere politicos procesului să se oprească curat.
#    Aplicația are timp să salveze datele pe disc, să închidă conexiunile de baze de date și să iasă.
kill -15 4812

# 2. SIGKILL (Semnal 9 - Forțat): Kernel-ul oprește INSTANTANEU procesul la nivel hardware!
#    Procesul NU poate intercepta, bloca sau ignora acest semnal (nu are timp de curățare!).
kill -9 4812

# 3. SIGHUP (Semnal 1 - Hangup): Folosit de daemoni precum Nginx/Apache pentru a reciti
#    fișierele de configurare fără a întrerupe conexiunile clienților activi (Zero-Downtime Reload).
kill -1 4812

Fundamentele Containerelor (Docker / Kubernetes): Containerele nu sunt mașini virtuale, ci procese Linux standard izolate prin două caracteristici native ale kernel-ului:

  • Linux Namespaces: Creează o vizibilitate izolată pentru fiecare container: PID namespace (procesul crede că este PID 1), NET namespace (propria placă de rețea virtuală și tabelă de rutare), MNT namespace (propriul sistem de fișiere rădăcină).
  • Control Groups (cgroups v2): Impun limite hardware stricte și monitorizează consumul de resurse (ex: un container nu are voie să consume mai mult de 2 nuclee CPU și 1 GB memorie RAM).

Matricea Permisiunilor Standard și Speciale (SUID, SGID, Sticky Bit)

Securitatea accesului pe fișiere combină permisiunile standard pe 3 categorii (Owner / User, Group, Others) cu permisiuni speciale esențiale pentru administrare:

Tip Permisiune Valoare Octală Simbol Text Efect & Caz de Utilizare
Read / Write / Execute 4 / 2 / 1 rwx Drepturi de citire, modificare și execuție a fișierului sau de traversare a directorului.
SUID
(Set User ID)
4000 rwsr-xr-x Când fișierul este executat de un utilizator obișnuit, rulează temporar cu privilegiile proprietarului fișierului (de exemplu comanda /usr/bin/passwd are SUID root pentru a putea actualiza /etc/shadow).
SGID
(Set Group ID)
2000 rwxr-sr-x Pe fișiere: rulează cu privilegiile grupului. Pe directoare: toate fișierele noi create în interior moștenesc automat grupul directorului părinte (esențial pentru foldere partajate în echipă!).
Sticky Bit 1000 rwxrwxrwt Într-un director partajat cu scriere publică (cum este /tmp), un fișier poate fi șters sau redenumit EXCLUSIV de către proprietarul său sau de către utilizatorul root, prevenind ștergerea malițioasă a fișierelor colegilor.

Scripting Bash 26 de comenzi

Procese și monitorizare 25 de comenzi

Permisiuni și securitate 23 de comenzi

Rețea și transfer date 19 comenzi

Procesare și filtrare text 23 de comenzi

Arhivare și pachete 11 comenzi

Discuri și sistem 12 comenzi

Ajutor și căutarea comenzilor 4 comenzi

Toate comenzile Linux / Bash

Lista completă a comenzilor și utilitarelor Linux / Bash explicate în această secțiune, cu sintaxa lor uzuală. Comenzile cu link au o pagină dedicată, cu explicații detaliate, opțiuni și exemple practice.

Navigare și fișiere (13)

Comandă / Utilitar Ce face
ls Listează fișierele și directoarele dintr-o locație, cu detalii despre dimensiuni, drepturi de acces și date.
ls [opțiuni] [fișier_sau_director...]
cd Schimbă directorul de lucru curent în terminal.
cd [director]
pwd Afișează calea absolută completă a directorului curent de lucru.
pwd [opțiuni]
mkdir Creează unul sau mai multe directoare noi în sistemul de fișiere.
mkdir [opțiuni] director...
rmdir Șterge directoare goale din sistemul de fișiere.
rmdir [opțiuni] director...
cp Copiază fișiere și directoare de la o locație sursă către o destinație.
cp [opțiuni] sursă destinație
mv Mută sau redenumește fișiere și directoare.
mv [opțiuni] sursă destinație
rm Șterge definitiv fișiere și directoare din sistemul de fișiere.
rm [opțiuni] fișier...
touch Creează fișiere noi goale sau actualizează data și ora ultimei modificări a fișierelor existente.
touch [opțiuni] fișier...
ln Creează legături simbolice (symlinks) sau legături fizice (hard links) între fișiere.
ln [opțiuni] țintă nume_legătură
file Determină tipul real al unui fișier pe baza structurii interne și a numerelor magice.
file [opțiuni] fișier...
stat Afișează toate metadatele detaliate despre un fișier sau sistem de fișiere.
stat [opțiuni] fișier...
tree Afișează conținutul unui director sub formă de arbore, cu subdirectoarele și fișierele lor.
tree [opțiuni] [director]

Procesare și filtrare text (22)

Comandă / Utilitar Ce face
cat Afișează conținutul unuia sau mai multor fișiere și le concatenează în ieșirea standard.
cat [opțiuni] [fișier...]
less Vizualizează conținutul fișierelor pagină cu pagină, permițând navigarea înainte și înapoi.
less [opțiuni] fișier
head Afișează primele linii (implicit primele 10) dintr-un fișier sau flux de date.
head [opțiuni] [fișier...]
tail Afișează ultimele linii dintr-un fișier și permite monitorizarea în timp real a datelor noi.
tail [opțiuni] [fișier...]
grep Caută linii care se potrivesc cu un tipar sau o expresie regulată în fișiere.
grep [opțiuni] tipar [fișier...]
find Caută fișiere și directoare în mod recursiv pe baza numelui, tipului, mărimii sau datei.
find [cale...] [criterii...] [acțiune]
sed Editor de flux (stream editor) pentru transformarea, înlocuirea și filtrarea automată a textului.
sed [opțiuni] 'instrucțiuni' [fișier...]
awk Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.
awk [opțiuni] 'tipar { acțiune }' [fișier...]
cut Decupează secțiuni, coloane sau intervale de caractere din fiecare linie de text.
cut [opțiuni] [fișier...]
sort Sortează liniile de text în ordine alfabetică, numerică sau după o coloană specifică.
sort [opțiuni] [fișier...]
uniq Raportează sau elimină liniile duplicate consecutive dintr-un flux de text.
uniq [opțiuni] [intrare [ieșire]]
wc Contorizează numărul de linii, cuvinte și octeți dintr-un fișier sau flux de date.
wc [opțiuni] [fișier...]
tr Translatează, șterge sau comprimă caractere specifice din fluxul de intrare standard.
tr [opțiuni] SET1 [SET2]
diff Compară două fișiere linie cu linie și evidențiază diferențele dintre ele.
diff [opțiuni] fișier1 fișier2
tee Duplică fluxul de ieșire: îl trimite simultan atât pe ecran, cât și într-unul sau mai multe fișiere.
tee [opțiuni] [fișier...]
column Aliniază textul în coloane, transformând rânduri separate prin spații sau virgule într-un tabel ușor de citit.
column -t [-s SEPARATOR] [fișier...]
paste Lipește rândurile mai multor fișiere unul lângă altul sau unește toate rândurile unui fișier într-unul singur.
paste [-d LISTĂ] [-s] fișier1 fișier2 ...
comm Compară două fișiere sortate și arată ce rânduri sunt doar în primul, doar în al doilea sau în amândouă.
comm [-1] [-2] [-3] fișier1 fișier2
split Împarte un fișier mare în mai multe fișiere mai mici, după numărul de rânduri sau după dimensiune.
split [-l RÂNDURI | -b DIMENSIUNE] [fișier [prefix]]
nl Numerotează rândurile unui fișier, cu control asupra formatului, lățimii și numărului de start.
nl [-b STIL] [-w LĂȚIME] [-s SEPARATOR] [-v START] [fișier]
base64 Codifică date binare sau text în Base64 și le decodifică înapoi cu opțiunea -d.
base64 [-d] [-w COLOANE] [fișier]
jq Procesor JSON în linia de comandă: extrage, filtrează și transformă date JSON din fișiere sau răspunsuri API.
jq [opțiuni] 'FILTRU' [fișier.json]

Permisiuni și securitate (20)

Comandă / Utilitar Ce face
chmod Schimbă drepturile de acces (citire, scriere, execuție) pentru utilizator, grup și ceilalți.
chmod [opțiuni] mod fișier...
chown Schimbă proprietarul și grupul asociat unuia sau mai multor fișiere ori directoare.
chown [opțiuni] utilizator[:grup] fișier...
chgrp Schimbă grupul asociat unui fișier sau director.
chgrp [opțiuni] grup fișier...
sudo Execută o comandă cu drepturile depline ale administratorului (root) sau ale altui utilizator.
sudo [opțiuni] comandă [argumente...]
su Comută sesiunea curentă de terminal pe alt utilizator sau deschide un shell ca root.
su [opțiuni] [utilizator]
passwd Modifică parola de acces a contului de utilizator curent sau a altui cont.
passwd [opțiuni] [utilizator]
id Afișează identitatea de utilizator (UID), de grup (GID) și toate grupurile asociate.
id [opțiuni] [utilizator]
whoami Afișează numele de utilizator efectiv asociat sesiunii curente de terminal.
whoami
useradd Creează un nou cont de utilizator în sistemul de operare.
useradd [opțiuni] nume_utilizator
usermod Modifică proprietățile unui cont existent de utilizator (grupuri, shell, director acasă).
usermod [opțiuni] utilizator
groups Afișează numele tuturor grupurilor din care face parte utilizatorul curent sau cel specificat.
groups [utilizator...]
umask Setează sau afișează masca implicită de permisiuni pentru fișierele și directoarele nou create.
umask [-S] [mască]
groupadd / groupdel Creează, redenumește și șterge grupuri de utilizatori, folosite pentru a da drepturi comune mai multor conturi.
groupadd [opțiuni] GRUP
userdel Șterge un cont de utilizator din sistem și, opțional, directorul lui personal și căsuța de mail.
userdel [opțiuni] UTILIZATOR
chage Afișează și setează regulile de expirare a parolei și a contului unui utilizator.
chage [opțiuni] UTILIZATOR
visudo Editează în siguranță fișierul /etc/sudoers, verificând sintaxa înainte de salvare ca să nu pierzi accesul la sudo.
visudo [-c] [-f FIȘIER]
who / w / last Arată cine este conectat acum pe server, ce face fiecare și istoricul autentificărilor.
who [opțiuni]
openssl Trusa în linie de comandă pentru hash-uri, chei, certificate TLS și verificarea certificatelor unui site.
openssl SUBCOMANDĂ [opțiuni]
sha256sum / md5sum Calculează și verifică sume de control (SHA-256, MD5) ca să știi dacă un fișier este identic cu originalul.
sha256sum [opțiuni] [FIȘIER...]
firewall-cmd Administrează firewall-ul firewalld (Fedora, RHEL, AlmaLinux): zone, servicii și porturi deschise, temporar sau permanent.
firewall-cmd [--zone=ZONĂ] [--permanent] ACȚIUNE

Procese și monitorizare (20)

Comandă / Utilitar Ce face
ps Afișează o captură instantanee (snapshot) a proceselor active din sistem.
ps [opțiuni]
top Monitorizează interactiv și în timp real procesele, încărcarea procesorului și memoria RAM.
top [opțiuni]
htop Monitor de sistem interactiv, colorat și intuitiv pentru resurse, memorie și procese.
htop [opțiuni]
kill Trimite un semnal de control sau oprire către un proces specificat prin ID (PID).
kill [opțiuni] PID...
killall Oprește toate procesele care rulează sub un anumit nume de executabil.
killall [opțiuni] nume_proces...
df Raportează spațiul liber și ocupat pe toate sistemele de fișiere și partițiile montate pe disc.
df [opțiuni] [fișier...]
du Estimează și afișează spațiul ocupat pe disc de directoare și fișiere.
du [opțiuni] [cale...]
free Afișează cantitatea de memorie fizică (RAM) și swap utilizată și disponibilă în sistem.
free [opțiuni]
uname Afișează informații detaliate despre nucleul (kernel), arhitectura hardware și sistemul de operare.
uname [opțiuni]
uptime Afișează de cât timp funcționează sistemul, numărul de utilizatori conectați și mediile de încărcare (load average).
uptime [opțiuni]
systemctl Controlează sistemul de inițializare systemd și administrează serviciile (demoni de fundal).
systemctl [comandă] [serviciu...]
journalctl Interoghează și filtrează jurnalele centrale de sistem gestionate de serviciul systemd-journald.
journalctl [opțiuni]
watch Rulează periodic o comandă și afișează rezultatul pe tot ecranul, evidențiind modificările.
watch [opțiuni] comandă
nohup Pornește o comandă care continuă să ruleze și după ce închizi terminalul sau sesiunea SSH.
nohup comandă [argumente] [> fișier 2>&1] &
jobs, bg și fg Gestionează joburile shell-ului: comenzi pornite în fundal, suspendate cu Ctrl+Z și aduse înapoi în prim-plan.
comandă &
pgrep și pkill Găsește procesele după nume (pgrep) sau le trimite un semnal direct după nume (pkill), fără să cauți PID-ul manual.
pgrep [opțiuni] tipar
nice și renice Pornește o comandă cu altă prioritate de procesor (nice) sau schimbă prioritatea unui proces care rulează deja (renice).
nice [-n ajustare] comandă [argumente]
at Programează o comandă să ruleze o singură dată, la o oră anume, spre deosebire de cron, care repetă sarcinile.
at [opțiuni] ORA
systemd timers (systemctl list-timers) Programează sarcini repetate cu unități .timer în systemd, o alternativă la cron cu jurnal și dependențe.
systemctl list-timers [--all]
logrotate Rotește, comprimă și șterge automat fișierele de jurnal vechi, ca să nu umple discul.
logrotate [-d] [-f] [-v] FIȘIER_CONFIGURARE

Rețea și transfer date (18)

Comandă / Utilitar Ce face
curl Transferă date către sau de la un server folosind protocoale web (HTTP, HTTPS, FTP, REST API).
curl [opțiuni] [URL...]
wget Descarcă fișiere de pe internet prin protocoalele HTTP, HTTPS și FTP, cu suport pentru reluare și descărcare recursivă.
wget [opțiuni] [URL...]
ping Testează conectivitatea de rețea și măsoară timpul de răspuns (latența) către o adresă IP sau domeniu.
ping [opțiuni] destinație
ssh Conectează în siguranță un terminal criptat la distanță pe un alt server Linux.
ssh [opțiuni] utilizator@server [comandă]
scp Copiază fișiere în mod securizat între mașini diferite prin tunel criptat SSH.
scp [opțiuni] sursă destinație
rsync Sincronizează fișiere și directoare rapid, transferând doar blocurile modificate (transfer delta).
rsync [opțiuni] sursă destinație
ip Configurează și inspectează interfețele de rețea, adresele IP, tabelele de rutare și tunelurile.
ip [opțiuni] obiect comandă
netstat Afișează conexiunile de rețea active, porturile deschise pentru ascultare și tabelele de rutare.
netstat [opțiuni]
ss Utilitar modern și ultra-rapid pentru investigarea socket-urilor și a conexiunilor de rețea.
ss [opțiuni] [filtru]
nslookup Interoghează serverele de nume DNS pentru a rezolva adresa IP a unui domeniu sau invers.
nslookup [nume_domeniu_sau_IP] [server_dns]
dig Instrument avansat și flexibil pentru interogarea și depanarea detaliată a serverelor DNS.
dig [@server] nume_domeniu [tip_înregistrare]
ssh-keygen Generează perechi de chei SSH (privată și publică), le schimbă parola și le afișează amprenta.
ssh-keygen [-t TIP] [-C COMENTARIU] [-f FIȘIER] [-N PAROLĂ]
ssh-copy-id Copiază cheia ta publică SSH pe un server, în authorized_keys, ca să te poți conecta fără parolă.
ssh-copy-id [-i CHEIE.pub] [-p PORT] utilizator@gazdă
~/.ssh/config Fișierul de configurare al clientului SSH: nume scurte pentru servere, utilizator, port și cheie implicite.
Host ALIAS
nc (netcat) Deschide conexiuni TCP sau UDP brute: verifici dacă un port răspunde, asculți pe un port sau trimiți date rapid.
nc [opțiuni] GAZDĂ PORT
traceroute / mtr Arată ruta pachetelor până la un server, router cu router, și unde apar întârzieri sau pierderi.
traceroute [opțiuni] GAZDĂ
hostname Afișează numele mașinii, varianta completă (FQDN) și adresele IP; poate schimba temporar numele.
hostname [opțiuni] [NUME_NOU]
nmcli Controlează NetworkManager din terminal: interfețe, conexiuni Wi-Fi, adrese IP statice și DNS.
nmcli [opțiuni] OBIECT {COMANDĂ | help}

Arhivare și pachete (11)

Comandă / Utilitar Ce face
tar Împachetează mai multe fișiere într-o singură arhivă (tarball) și o comprimă opțional cu gzip sau bzip2.
tar [opțiuni] fișier.tar [fișiere_sau_directoare...]
gzip Comprimă fișiere individuale folosind algoritmul Lempel-Ziv (LZ77) și adaugă extensia .gz.
gzip [opțiuni] [fișier...]
gunzip Decomprimă fișierele comprimate în format gzip (.gz).
gunzip [opțiuni] fișier.gz...
zip Creează arhive comprimate în format standard ZIP, compatibile cu Windows și macOS.
zip [opțiuni] arhiva.zip fișiere...
unzip Listează, testează și extrage conținutul din arhivele ZIP.
unzip [opțiuni] fisier.zip [fișiere...]
apt Managerul modern de pachete pentru instalarea, actualizarea și eliminarea programelor pe distribuții Debian și Ubuntu.
apt [opțiuni] comandă [pachet...]
dnf / yum Managerul de pachete din Fedora, RHEL, Rocky Linux și AlmaLinux: instalează, actualizează și caută pachete RPM.
sudo dnf [install | remove | upgrade | search | info | provides] [pachet]
pacman Managerul de pachete din Arch Linux și Manjaro: sincronizează depozitele, instalează, caută și elimină pachete.
sudo pacman -S | -Syu | -R | -Ss | -Q [pachet]
snap Instalează aplicații ambalate ca pachete snap, care vin cu propriile dependențe și se actualizează automat.
sudo snap install | remove | refresh | list | find [pachet]
flatpak Instalează și rulează aplicații desktop izolate din Flathub, independent de distribuția Linux folosită.
flatpak install | run | list | update | uninstall [depozit] [ID-aplicație]
dpkg / apt-cache Interoghează pachetele .deb instalate pe Debian și Ubuntu și informațiile din depozitele APT.
dpkg -l | -L | -S | -i [pachet]

Scripting Bash (24)

Comandă / Utilitar Ce face
echo Afișează o linie de text sau valorile variabilelor în consolă sau ieșirea standard.
echo [opțiuni] [șir...]
printf Formatează și afișează date conform unui șablon precis, similar cu funcția printf din C.
printf format [argumente...]
read Citește o linie de text de la tastatură sau din intrarea standard și o salvează într-o variabilă.
read [opțiuni] [variabilă...]
Variabile în Bash Declararea, atribuirea, valorile implicite și expandarea corectă a variabilelor în Bash.
NUME=valoare
if / else Execuția condiționată a blocurilor de comenzi pe baza codurilor de ieșire sau a testelor logice.
if [[ condiție ]]; then
for Iterează peste o listă de elemente, fișiere, argumente sau intervale de numere.
for element in lista; do
while Execută repetat un bloc de comenzi atâta timp cât condiția specificată rămâne adevărată.
while [[ condiție ]]; do
case Ramificare multi-opțiune bazată pe potrivirea de tipare text (pattern matching).
case "$variabilă" in
Funcții în Bash Gruparea instrucțiunilor în blocuri reutilizabile de cod, cu variabile locale și parametri.
nume_functie() {
Redirecționare și conducte (Pipes) Redirecționarea fluxurilor standard de intrare (stdin), ieșire (stdout), erori (stderr) și legarea prin conducte (pipes).
comanda > fisier.txt
alias Creează scurtături personalizate și memorabile pentru comenzi lungi sau frecvente.
alias [nume='comandă cu opțiuni']
export Transformă o variabilă de shell într-o variabilă de mediu (environment variable) accesibilă proceselor copil.
export NUME[=valoare]
source Execută comenzile dintr-un fișier direct în contextul shell-ului curent, păstrând variabilele și funcțiile.
source fișier [argumente...]
exit Încheie execuția shell-ului sau a scriptului curent și transmite un cod numeric de stare sistemului.
exit [cod_retur]
test, [ ] și [[ ]] Verifică fișiere, numere și texte și întoarce codul 0 (adevărat) sau 1 (fals), folosit în if, while și cu && / ||.
test EXPRESIE
trap Rulează comenzi când scriptul primește un semnal (INT, TERM) sau la ieșire (EXIT), de obicei pentru curățenie.
trap 'comenzi' SEMNAL [SEMNAL...]
getopts Citește opțiunile scurte ale unui script (-v, -n nume) într-o buclă, cu validare și mesaje de eroare.
while getopts "ab:c" opt; do
Tablouri în Bash (indexate și asociative) Liste de valori accesate prin index (tablou[0]) și dicționare cheie-valoare cu declare -A, cu parcurgere și numărare.
tablou=("a" "b" "c")
Heredoc și here-string Trimite un bloc de text pe mai multe rânduri la intrarea unei comenzi, de exemplu pentru a crea fișiere de configurare.
comanda <<EOF
set -euo pipefail Face un script Bash să se oprească la prima eroare, la variabile nedefinite și la comenzi eșuate din pipeline.
set -euo pipefail
Coduri de ieșire ($?, &&, ||) Fiecare comandă întoarce un cod: 0 pentru succes, 1-255 pentru eroare. Se citește cu $? și se folosește cu && și ||.
comanda; echo $?
Expansiunea parametrilor (${var:-implicit}, ${var#prefix}) Valori implicite, tăierea prefixelor și sufixelor, înlocuiri și subșiruri direct în Bash, fără sed sau cut.
${var:-implicit} ${var:=implicit} ${var:?mesaj} ${var:+alt}
Aritmetică în Bash: $(( )) și (( )) Calcule cu numere întregi direct în shell: adunări, împărțiri, rest, puteri, contoare și comparații în (( )).
rezultat=$(( expresie ))
mapfile / readarray Citește rândurile unui fișier sau ale ieșirii unei comenzi într-un tablou Bash, câte un rând pe element.
mapfile -t tablou < fișier

Discuri și sistem (12)

Comandă / Utilitar Ce face
lsblk Afișează discurile și partițiile din sistem sub formă de arbore, cu mărime, tip și punct de montare.
lsblk [opțiuni] [dispozitiv...]
mount și umount Atașează (montează) un sistem de fișiere într-un director și îl detașează în siguranță cu umount.
mount [-t tip] [-o opțiuni] dispozitiv director
fdisk și parted Afișează și modifică tabela de partiții a unui disc (MBR sau GPT) cu fdisk interactiv sau cu parted.
fdisk -l [dispozitiv]
blkid Afișează UUID-ul, eticheta și tipul sistemului de fișiere pentru partițiile din sistem.
blkid [opțiuni] [dispozitiv...]
dmesg Afișează mesajele nucleului Linux: detectarea hardware-ului, drivere, erori de disc și de memorie.
dmesg [opțiuni]
lscpu Afișează arhitectura și detaliile procesorului: model, nuclee, fire de execuție, memorie cache, virtualizare.
lscpu [opțiuni]
lspci și lsusb Listează dispozitivele conectate pe magistrala PCI (placă video, rețea, SSD) și pe USB.
lspci [opțiuni]
timedatectl Afișează și modifică ora sistemului, fusul orar și sincronizarea automată prin NTP, pe sisteme cu systemd.
timedatectl [comandă] [argumente]
hostnamectl Afișează și schimbă numele mașinii (hostname) și arată sistemul de operare, nucleul și tipul de virtualizare.
hostnamectl [comandă] [argumente]
date Afișează data și ora curentă în orice format, calculează date relative și convertește timestamp-uri Unix.
date [opțiuni] [+FORMAT]
env Afișează variabilele de mediu sau rulează o comandă cu un mediu modificat, fără să schimbe shell-ul curent.
env [opțiuni] [NUME=valoare...] [comandă [argumente...]]
ulimit Afișează și setează limitele de resurse ale shell-ului: fișiere deschise, procese, mărimea fișierelor core.
ulimit [-S|-H] [-a|-n|-u|-c|-f|-s|-v] [limită]

Ajutor și căutarea comenzilor (4)

Comandă / Utilitar Ce face
which, whereis și type Află ce program rulează de fapt când scrii o comandă: fișierul din PATH, o comandă internă, un alias sau o funcție.
which [-a] comandă
man Deschide manualul oficial al unei comenzi, al unui fișier de configurare sau al unei funcții, direct în terminal.
man [secțiune] pagină
history Afișează și refolosește comenzile scrise anterior în Bash: repetare cu !!, căutare cu Ctrl+R și setări cu HISTSIZE.
history [N]
locate Găsește fișiere după nume aproape instantaneu, căutând într-o bază de date actualizată periodic cu updatedb.
locate [opțiuni] tipar