Linux head Komut Kılavuzu: Dosya ve Veri Ön İzleme Teknikleri

Linux komut satırında `head` komutunun tüm kullanım senaryoları, temel syntax'tan gelişmiş opsiyonlara kadar detaylı kılavuz. Dosya başlıklarını, baytları ve boru hattı işlemlerini öğrenin.

I
ITWISE
0 görüntülenme

Giriş

head komutu, Linux ve Unix tabanlı sistemlerde dosyaların veya komut çıktılarının ilk bölümlerini görüntülemek için kullanılan temel bir araçtır. Genellikle log dosyalarının analizinden, büyük dosyaların önizlemesine, hatta ikili dosyaların ilk baytlarının incelenmesine kadar çok çeşitli senaryolarda kullanılır. Bu kılavuzda, head komutunun temel syntax'ından gelişmiş opsiyonlarına, boru hattı (pipeline) uygulamalarından NUL-sınırlı verilerin işlenmesine kadar tüm yönlerini detaylı olarak inceleyeceğiz.

Temel Kullanım

head komutunun en basit kullanımı, bir dosyanın ilk 10 satırını görüntülemektir. Bu varsayılan davranış, komutun adından da anlaşılabilir (head = baş).

Temel Sözdizimi

Aşağıdaki komutlar, head komutunun temel kullanım şekillerini göstermektedir:

# Bir dosyanın ilk 10 satırını görüntüle
head dosya.txt

# Belirli bir sayıda satır görüntüle
head -n 20 dosya.txt

# İlk baytları görüntüle (satır yerine)
head -c 100 dosya.txt

# Boru hattından gelen çıktıyı sınırla
ls -l | head -n 10

# '-' ile başlayan dosya adlarını oku
head -- -notes.txt
İpucu: -n opsiyonu kullanılmadığında varsayılan olarak 10 satır görüntülenir. head -5 şeklindeki eski syntax kullanılmamalıdır; bunun yerine head -n 5 tercih edilmelidir.

Satır Seçimi ve Önizleme

Satır Sayısını Kontrol Etme

head komutu, görüntülenecek satır sayısını -n opsiyonu ile belirlemenizi sağlar. Bu özellik, özellikle büyük dosyaların ilk birkaç satırını incelemek için kullanışlıdır.

# İlk 5 satırı görüntüle
head -n 5 /etc/passwd

# CSV dosyasının başlık satırını görüntüle
head -n 1 data.csv

# Log dosyasının ilk 100 girişini önizle
head -n 100 app.log

# Son 5 satır hariç tüm satırları görüntüle (GNU özelliği)
head -n -5 dosya.txt

# Birden fazla dosyanın ilk 2 satırını görüntüle
head -n 2 dosya1.txt dosya2.txt
Dikkat: head -n -5 komutu, sadece GNU head sürümlerinde çalışır. Diğer sistemlerde bu komut hata verebilir.

Bayt Seçimi

Bazen dosyaların ilk baytlarını görüntülemek gerekebilir. Bu durumda -c opsiyonu kullanılır. Bu opsiyon, dosyaların ikili (binary) formatta olması durumunda özellikle kullanışlıdır.

# İlk 100 baytı görüntüle
head -c 100 dosya.txt

# İlk 2KB (2048 bayt) görüntüle
head -c 2K dosya.txt

# İlk 1MB (1,000,000 bayt) görüntüle
head -c 1MB dosya.txt

# Son 512 bayt hariç tüm baytları görüntüle (GNU özelliği)
head -c -512 dosya.txt

# İlk 512 baytı bir dosyaya kaydet
head -c 512 disk.img > header.bin
Uyarı: Bayt seçimi yaparken çıktı ekrana yazdırıldığında, ikili veriler ekrana garip karakterler olarak görünebilir. Bu durumda çıktıyı bir dosyaya yönlendirmek veya hexdump gibi bir araçla incelemek daha güvenlidir.

Birden Fazla Dosya ve Başlıklar

Dosya Başlıklarını Yönetme

head komutu, birden fazla dosya ile kullanıldığında varsayılan olarak her dosya için bir başlık satırı ekler. Bu davranışı kontrol etmek için -q ve -v opsiyonları kullanılabilir.

# Birden fazla dosyanın ilk 10 satırını görüntüle (başlıklarla birlikte)
head dosya1.txt dosya2.txt

# Tüm eşleşen log dosyalarının ilk 5 satırını görüntüle
head -n 5 *.log

# Dosya başlıklarını gizle
head -q dosya1.txt dosya2.txt

# Her zaman dosya başlığı göster
head -v dosya.txt

# Dosyalar ve standart girişi sırayla oku
head -n 5 dosya1.txt - dosya2.txt
İpucu: - sembolü, standart girişi temsil eder. Bu sayede head komutu, dosyalar ve standart giriş arasında geçiş yapabilir.

Boru Hattı (Pipeline) Uygulamaları

Diğer Komutlarla Birlikte Kullanma

head komutu, diğer komutların çıktılarını sınırlamak için boru hattı (pipeline) içinde sıklıkla kullanılır. Bu sayede, büyük çıktıların sadece ilk birkaç satırını görüntüleyerek performans ve okunabilirlik sağlanır.

# En son değiştirilen 5 dosyayı listele
ls -t | head -n 5

# Sıralanmış bir dosyadan en yüksek 10 değeri görüntüle
sort -nr skorlar.txt | head -n 10

# Log dosyasından ilk 20 hata girişini görüntüle
grep 'ERROR' app.log | head -n 20

# 20. satırdan itibaren 11 satırlık bir kesit oluştur
# (Önce 20. satırdan sonrasını oku, ardından ilk 11 satırı al)
tail -n +20 dosya.txt | head -n 11

# İlk 20 satırdaki kelime sayısını hesapla
head -n 20 dosya.txt | wc -w
Önemli: Boru hattı kullanırken, head komutu çıktıyı sınırladığı için bazı komutlar "kırık boru" (broken pipe) hatası verebilir. Bu, normal bir durumdur ve genellikle bir sorun teşkil etmez.

Yararlı Opsiyonlar ve Uzun Formlar

GNU head Komutunun Opsiyonları

Aşağıdaki tablo, head komutunun en sık kullanılan opsiyonlarını ve uzun formlarını içermektedir:

Kısa Form Uzun Form Açıklama
-n NUM --lines=NUM İlk NUM satırı görüntüler
-c NUM --bytes=NUM İlk NUM baytı görüntüler
-q --quiet Dosya başlıklarını asla göstermez
-v --verbose Her zaman dosya başlığı gösterir
-z --zero-terminated NUL-sınırlı girdileri okuyup yazar (GNU özelliği)
--help - Komut yardımını gösterir
--version - Yüklü versiyonu gösterir
Not: -z opsiyonu, sadece GNU head sürümlerinde mevcuttur. Diğer sistemlerde bu opsiyon tanınmayabilir.

NUL-Sınırlı Girdi İşleme

Özel Karakterli Dosya Adlarıyla Çalışma

head komutu, dosya adlarında boşluk, yeni satır veya diğer özel karakterler bulunan dosyalarla çalışırken -z opsiyonunu destekler. Bu opsiyon, NUL-sınırlı girdilerle çalışmayı sağlar ve güvenli dosya işleme için kullanılır.

# İlk 5 NUL-sınırlı yolu seç
find . -type f -print0 | head -z -n 5

# İlk 5 yolu güvenli bir şekilde ls komutuna aktar
find . -type f -print0 | head -z -n 5 | xargs -0 -r ls -l

# NUL-sınırlı ilk öğeyi görüntüle
printf 'bir\0iki\0' | head -z -n 1
Uyarı: NUL-sınırlı girdilerle çalışırken, xargs komutunun -0 opsiyonu ile birlikte kullanılması güvenli dosya işleme için önemlidir. Aksi takdirde, dosya adlarında boşluk veya özel karakterler bulunan dosyalarla ilgili sorunlar yaşanabilir.

Sorun Giderme

Yaygın head Komutu Sorunları ve Çözümleri

Sorun Çözüm
Sadece 10 satır görüntüleniyor Bu, varsayılan davranıştır. Satır sayısını -n NUM opsiyonu ile ayarlayın
Dosya başlıkları görünüyor Birden fazla dosya kullanıldığında başlıklar otomatik olarak eklenir. Başlıkları gizlemek için -q opsiyonunu kullanın
İkili çıktı düzgün görünmüyor Bayt çıktısını bir dosyaya yönlendirin veya hexdump gibi bir araçla inceleyin
head -n -5 çalışmıyor Negatif satır sayısı GNU özelliğidir ve taşınabilir değildir
Üst komut boru hattı hatası bildiriyor head komutu yeterli girdi aldıktan sonra çıkış yapar. Bazı üreticiler kapalı boru hattını hata olarak rapor edebilir

İlgili Kılavuzlar ve Kaynaklar

Tam Metin İşleme Akışları için Önerilen Kaynaklar

Aşağıdaki kılavuzlar ve cheat sheet'ler, head komutunu diğer metin işleme araçlarıyla birlikte kullanarak eksiksiz bir iş akışı oluşturmanıza yardımcı olacaktır:

Kaynak Açıklama
head Komutu Rehberi Satırlar, baytlar, dosyalar ve boru hattı uygulamaları hakkında tam bir rehber
tail Cheat Sheet Dosyaların sonunu okuma ve logları takip etme
cat Cheat Sheet Dosya içeriklerini görüntüleme ve birleştirme
sort Cheat Sheet En iyi sonuçları seçmeden önce satırları sıralama
wc Cheat Sheet Satır, kelime ve bayt sayısını hesaplama

Kaynak

Linuxize