grep este una dintre cele mai utile comenzi Linux atunci când vrei să găsești rapid un cuvânt, o eroare, un IP, un utilizator sau o linie importantă într-un fișier. Este folosită des în administrarea Linux, depanare, analiză de loguri și cybersecurity defensiv, pentru că poate filtra rapid informația din fișiere mari.
Manualul Linux descrie grep ca unealtă care caută modele în fișiere și afișează liniile care se potrivesc. Poate lucra cu texte simple, expresii regulate și opțiuni pentru căutare recursivă, ignorarea diferenței dintre litere mari/mici, afișarea numerelor de linie sau includerea contextului din jurul rezultatului.
Căutare simplă într-un fișier
Forma de bază este:
grep "text_cautat" fisier.txt
Exemplu:
grep "error" aplicatie.log
Această comandă afișează toate liniile din aplicatie.log care conțin cuvântul error.
Dacă vrei să cauți un text cu spații, pune-l între ghilimele:
grep "failed login" auth.log
Fără ghilimele, shell-ul poate interpreta cuvintele ca argumente separate.
Caută fără să conteze literele mari sau mici
Implicit, grep face diferență între Error, error și ERROR. Pentru căutare case-insensitive, folosește -i:
grep -i "error" aplicatie.log
Asta este foarte util în loguri, unde mesajele pot fi scrise diferit de la o aplicație la alta. GNU Grep include opțiuni pentru controlul potrivirii și al afișării rezultatelor, inclusiv forme scurte și lungi pentru multe opțiuni.
Afișează numărul liniei
Când cauți într-un fișier de configurare sau într-un log mare, este util să știi pe ce linie apare rezultatul:
grep -n "PermitRootLogin" /etc/ssh/sshd_config
Rezultatul poate arăta așa:
34:PermitRootLogin no
Asta îți spune că potrivirea este la linia 34. Este foarte util când vrei să deschizi fișierul în editor și să ajungi rapid la zona respectivă.
Caută în toate fișierele dintr-un folder
Pentru căutare recursivă într-un director, folosește -r:
grep -r "database" /var/www/site/
Opțiunea -r citește recursiv fișierele din directoare; manualul grep precizează că urmărește linkurile simbolice doar dacă acestea sunt date explicit în linia de comandă.
Dacă vrei și numărul liniei:
grep -rn "database" /var/www/site/
Pentru căutare fără diferență între litere mari și mici:
grep -rni "error" /var/log/
Atenție: /var/log/ poate conține fișiere mari și fișiere pentru care ai nevoie de drepturi administrative. Dacă primești „Permission denied”, poți folosi sudo, dar doar dacă ai motiv clar:
sudo grep -rni "failed" /var/log/
Caută doar în anumite tipuri de fișiere
Dacă vrei să cauți doar în fișiere .conf:
grep -rni --include="*.conf" "listen" /etc/
Dacă vrei să excluzi fișiere .gz sau directoare de cache:
grep -rni --exclude="*.gz" "error" /var/log/
Acest lucru este util pentru loguri arhivate sau proiecte mari, unde nu vrei să cauți în fișiere inutile.
Afișează contextul din jurul rezultatului
Uneori linia găsită nu este suficientă. Ai nevoie de câteva linii înainte și după.
Două linii după rezultat:
grep -A 2 "error" aplicatie.log
Două linii înainte:
grep -B 2 "error" aplicatie.log
Două linii înainte și după:
grep -C 2 "error" aplicatie.log
GNU Grep documentează opțiunile -A, -B și -C pentru afișarea liniilor de context în jurul potrivirilor.
Folosește grep cu pipe
grep devine foarte puternic când îl combini cu alte comenzi.
Caută un proces:
ps aux | grep nginx
Caută un serviciu în lista systemd:
systemctl list-units --type=service | grep ssh
Filtrează conexiunile active:
ss -tulpen | grep ":22"
Caută erori în logurile systemd:
journalctl -b | grep -i "failed"
Aici grep nu caută într-un fișier direct, ci filtrează rezultatul altei comenzi.
Caută linii care NU conțin un text
Opțiunea -v inversează rezultatul. Afișează liniile care nu conțin termenul căutat:
grep -v "INFO" aplicatie.log
Exemplu practic: dacă un log are multe linii INFO, dar vrei să vezi restul mesajelor:
grep -v "INFO" aplicatie.log | less
Numără potrivirile
Pentru a număra câte linii se potrivesc:
grep -c "error" aplicatie.log
Pentru căutare recursivă cu număr pe fișier:
grep -rc "error" /var/log/
Rețetă rapidă pentru loguri
Când investighezi un log, începe simplu:
grep -i "error" aplicatie.log
grep -i "failed" aplicatie.log
grep -i "denied" aplicatie.log
grep -i "timeout" aplicatie.log
Pentru autentificări SSH pe Ubuntu/Debian:
sudo grep -i "failed password" /var/log/auth.log
Pentru loguri mari, combină cu less:
sudo grep -i "failed password" /var/log/auth.log | less
grep nu rezolvă singur problema, dar îți arată rapid unde să te uiți. Folosit corect, economisește timp enorm când cauți erori, configurări, utilizatori, IP-uri, procese sau evenimente suspecte. Începe cu opțiunile de bază: -i, -n, -r, -v, -c, -A, -B și -C. Sunt suficiente pentru majoritatea situațiilor reale.
Surse folosite
- GNU Grep Manual — opțiuni de linie de comandă.
- Linux man page —
grep(1). - GNU Grep Manual — linii de context cu
-A,-B,-C.

















































