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:-nopsiyonu kullanılmadığında varsayılan olarak 10 satır görüntülenir.head -5şeklindeki eski syntax kullanılmamalıdır; bunun yerinehead -n 5tercih 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 -5komutu, sadece GNUheadsü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 sayedeheadkomutu, 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:-zopsiyonu, sadece GNUheadsü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,xargskomutunun-0opsiyonu 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 |


