BAKI,VOA
Linux sistemləri minlərlə qovluq və milyonlarla fayldan ibarətdir. Xüsusilə server idarə edərkən və ya proqramlaşdırma ilə məşğul olarkən müəyyən bir faylı və ya faylın içindəki konkret bir sözü tapmaq samanlıqda iynə axtarmağa bənzəyə bilər. Lakin Linux-un iki möhtəşəm aləti — Find və Grep — bu samanlığı saniyələr içində ələkdən keçirməyə imkan verir. Bu məqalədə biz peşəkar bir detektiv kimi sistemdə axtarış aparmağı öyrənəcəyik.
1. Faylları tapmaq: Find komandası
Find komandası sistemdə faylın adına, ölçüsünə, yaradılma tarixinə və ya icazələrinə görə axtarış aparmaq üçün istifadə olunur.
Ada görə axtarış: find /home -name "hesabat.txt"
Bu komanda /home qovluğunda adı "hesabat.txt" olan bütün faylları tapır.
Ölçüyə görə axtarış: find /var/log -size +100M
100 meqabaytdan böyük olan bütün loq fayllarını tapmaq üçün mükəmməldir.
Genişlənməyə görə axtarış: find . -name "*.jpg"
Olduğunuz qovluqdakı bütün şəkil fayllarını siyahılayır.
2. Mətnin içində axtarış: Grep komandası
Grep Linux-un ən çox istifadə olunan və ən güclü komandalarından biridir. O, faylları deyil, faylların daxilindəki mətnləri axtarır.
Faylın daxilində söz axtarmaq: grep "xəta" sistem_loqu.txt
Faylın içində "xəta" sözü keçən bütün sətirləri ekrana gətirir.
Böyük-kiçik hərf fərqi olmadan: grep -i "linux" qeydlər.txt
"Linux", "linux" və ya "LINUX" yazılmasından asılı olmayaraq bütün nəticələri tapır.
Bütün qovluqda axtarış: grep -r "verilənlər bazası" /var/www/
Veb saytınızın bütün faylları daxilində bu ifadəni axtarır.
3. İki gücü birləşdirin: Pipe (|) istifadəsi
Linux-da bir komandanın nəticəsini digərinə ötürmək üçün "Pipe" (borulama) işarəsindən istifadə edirik. Bu, axtarışı inanılmaz dərəcədə gücləndirir.
Ssenari: Sistemdəki bütün aktiv proseslər arasında yalnız "python" ilə bağlı olanları görmək istəyirsiniz:
Komanda: ps aux | grep python
PS aux bütün siyahını çıxarır, grep isə onların arasından yalnız "python" sözü keçənləri süzgəcdən keçirib sizə göstərir.
Axtarışın nəticəsini fayla yazmaq
Əgər axtarışın nəticəsi çox uzundursa və onu sonra oxumaq istəyirsinizsə, nəticəni birbaşa fayla yönləndirə bilərsiniz.
Komanda: find / -name "*.conf" > konfiqurasiya_listi.txt
Mütəxəssis məsləhətləri
Tab düyməsindən istifadə edin: Fayl yollarını yazarkən səhv etməmək üçün Tab düyməsi ilə tamamlamadan istifadə edin.
Ulduz (*) işarəsinin gücü: *.txt yazmaqla bütün mətn fayllarını, a* yazmaqla "a" hərfi ilə başlayan hər şeyi əhatə edə bilərsiniz.
Grep rəngləndirmə: grep --color komandasından istifadə etsəniz, tapılan sözlər ekranda rəngli görünəcək və oxumaq asanlaşacaq.