Genel

More, Tail, Head, Grep, Egrep ve Od Komutları

-Hacım more’lasana şu logu bir!
İşte more komutu aslında bu kadar basit. Misal 2gb boyutunda bir logumuz var. Bunu incelememiz gerekiyor. 2gb’lik bir dosyayı bir editör ya açamaz, (no buffer space) ya da açsa da uzun bir süre açmasını bekleriz. More burada imdadımıza yetişip, logu incelememizi sağlıyor. Peki bu kadar basit bir komutu neden yazıyorum? Çünkü parametrelerini aklımda tutamıyorum.
Postfix kurulu bir sunucuda, postfix loglarını incelemek istediğimizde, more komutunu kullanabiliriz. 

more /var/log/postfix.log

More tüm sayfanın çıktısını ekranımıza verir. Enter tuşu ile bir alt satıra, space tuşu ile ise bir alt sayfaya geçeriz. Çıktının en altında More’un yüzde ibaresi bulunur ve dosyanın hangi yüzdelik kısmını okuduğumuzu belirtir.  Yön tuşlarını da aynı şekilde kullanabiliriz. 
q more’u sonlandırır.
v vi editörünü açar.
More açıkken rakam yazıp, entere basarsak, belirttiğimiz rakamın satırına gider.
-n Ekrana çıktıyı basarken, satırları numaralandırır.

Bu arada more gibi davranan less komutumuz vardır. Nüans farkları var. Aslında less’in daha gelişmiş olduğunu söyleseler de, ben herhangi bir fark göremiyorum aralarında.
Dosyanın içinde belirli bir içerik arıyorsak grep komutunu kullanabiliriz. 

more /var/log/postfix.log | grep  192.168.1.1

Bu şekilde postfix.log dosyasının içeriğinde bulunan 192.168.1.1 satırlarını bize getirir. Grep komutundan önce muhakkak pipe (boru) karakterini kullanmamız gerekir. 

Grep komutu ile yine belgenin, text yazının veya dosyanın içerisinde arama yapabiliriz. Aynı şekilde belirli bir dizinin içerisinde de arama yapabiliriz.

grep -r -H ‘192.168.1.1’ /var/log

Bu komut bize, /var/log dizininin içerisinde bulunan dosyaların hepsinde, 192.168.1.1 yazısı var ise getirir. 

egrep
Egrep komutu grep komutunun gelişmiş halidir. Bir dosyanın içerisinde belirli bir karakteri arayabiliriz.

egrep test deneme komutu deneme dosyasının içerisinde bulunan test yazılarını getirecektir.
-n parametresi aradığımız sözcüğün hangi satırlarda geçtiğini belirtir.
-c test sözcüğünün toplam geçtiği satır sayısını verir.
-v test sözcüğünün geçmediği satırları gösterir.
-x dosyanın içinde belirli bir kelime arıyorsak kullanırız. Eğer test sözcüğünün yanında aynı dosyada testing isimli bir sözcük var ise yukarıdaki parametreler onuda sayar. Fakat aramızı egrep -x ‘testing’ deneme şeklinde yaparsak, sadece testingi gösterir. Veya egrep -xc ‘testing’ şeklinde yaparsak, sadece testing sözcüğünün kaç kere olduğunu gösterir.
Eğer bir dosyanın içerisinde iki farklı sözcük arıyorsak
egrep ‘(test|testing)’ şeklinde kullanırız. 

tail
tail komutu da more gibi kullanılabilir. Fakat akışkan bir belgede çok işimize yaramaktadır.

tail -f /var/log/postfix.log 

Bu komut postfix.log dosyasının içeriği değiştikçe ekrana çıktıyı basar. Ekrana çıktıyı basarken, belirli bir değer arıyorsak, yine grep komutunu kullanabiliriz.

tail -f /var/log/postfix.log | grep 192.168.1.1 

Akışkan belgeyi ekranımıza çıkartırken, içinde sadece 192.168.1.1 geçen satırları ekrana basar.

-c  parametresi ile sayı girerek, tail bize girdiğimiz sayının satırından başlayacaktır.
-f  parametresini yukarıda yazdım fakat işe yararlığı yukarıda belirttiğim gibi, akışkan dosyayı sürekli ekrana basar.
+sayı c parametresinden farkı, yazdığımız sayıyı ve altını getirecektir.

head
Head komutu da more gibi dosyaları ekranımıza çıktısını verir. Varsayılan olarak bir dosyanın ilk 10 satırını gösterir. -c parametresi, bir dosyayı başından başlayarak belirtilen sayıdaki bayt kadar, -n parametresi ise, dosyanın başından başlayarak belirtilen sayıdaki satırını gösterir.

head -n 87 /var/log/postfix.log 

Postfix.log dosyasının başından başlayıp, 87. satırını gösterecektir.

od
Muhtemelen hiç kullanmak için gereksinim duymadığım için muhtemelen de hiç gereksinim duymayacağım bir komut od. Belirtilen dosyayı ondalık, onaltılık ve ASCII karakter olarak görüntülememize yarar.

More, Head, Less ve Pg komutları bana göre hepsi aynı işleve yarıyor. Açıkçası ben bir tek more’u kullanıyorum ve hayatımdan memnunum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir