← Bash tools
TEKNİK REHBER BASH TOOLS DOSYA GÖRÜNTÜLEME 2026

cat, tac, less
okuma ve sayfalama

Dosya içeriğini görüntülemenin üç yolu: cat hepsini bir anda döker, tac ters sırayla döker, less sayfalayarak gezmenizi sağlar. Küçük dosyalar için cat, büyük dosyalar için less.

00 Üç aracın doğru kullanımı

"cat dosya.txt | grep 'something'" antipatterndir. grep 'something' dosya.txt yazın — cat gereksiz.

cat
Dosyayı tamamen stdout'a yaz — birleştirme, dosya oluşturma, pipe başlatma
tac
Dosyayı ters sırayla yaz — son log girişini önce görmek için
less
Büyük dosyaları sayfala — arama, işaretleme, geri alma ile
CAT KÖTÜYE KULLANIMI

Useless Use of Cat (UUOC) yaygın bir antipattern:
cat dosya | grep 'X'grep 'X' dosya
cat dosya | sortsort dosya
cat dosya | wc -lwc -l dosya
cat yalnızca birden fazla dosyayı birleştirirken veya here-doc alternatifi olarak anlamlıdır.

01 cat: temel birleştirme ve görüntüleme

cat (concatenate) birden fazla dosyayı birleştirir ve stdout'a yazar. Tek dosya için de görüntüleme aracı olarak kullanılır.

bash
# Dosya içeriğini göster
cat dosya.txt

# Birden fazla dosyayı birleştir (cat'in asıl amacı)
cat kisim1.txt kisim2.txt kisim3.txt > tamami.txt

# Dosyayı oluştur (küçük içerikler için)
cat > yeni.txt <<'EOF'
Birinci satır
İkinci satır
EOF

# Dosyaya ekle
cat >> mevcut.txt <<'EOF'
Eklenen satır
EOF

# Stdin'den oku (Ctrl+D ile sonlandır)
cat > not.txt

# Birden fazla dosyayı pipe'la işleme
cat access.log.1 access.log | grep 'ERROR'  # eski ve yeni logu birlikte ara
dosya [dosya...]
Birden fazla dosyayı sırayla birleştir
> dosya
Çıktıyı dosyaya yaz (yeni oluşturur veya üstüne yazar)
>> dosya
Çıktıyı dosyaya ekle

02 cat: satır numarası ve görünmez karakterler

Hata ayıklama sırasında satır numaraları ve görünmez karakterlerin gösterilmesi faydalıdır.

bash
# Satır numaraları göster
cat -n dosya.txt
     1	Birinci satır
     2	İkinci satır
     3	Üçüncü satır

# Sadece boş olmayan satırları numaralandır
cat -b dosya.txt

# Satır sonunu göster ($ ile, Windows CRLF tespiti)
cat -A dosya.txt       # -v -E -T hepsini birlikte
Satır sonu Unix$
Windows satır^M$

# Tab karakterlerini ^I olarak göster
cat -T Makefile        # Makefile tab gerektiren yerleri

# Görünmez karakterleri göster (^ ve M- notation)
cat -v binary.txt

# Ardışık boş satırları tekile indir
cat -s dosya.txt
-n
Tüm satırları numaralandır
-b
Sadece boş olmayan satırları numaralandır
-A
Tümünü göster: satır sonu ($), tab (^I), görünmez karakterler
-T
Tab'ları ^I olarak göster
-v
Yazdırılamaz karakterleri görünür yap
-s
Ardışık boş satırları tek satıra indir (squeeze)
WINDOWS SATIR SONU TESPİTİ

cat -A dosya.txt çıktısında satır sonunda $ yerine ^M$ görüyorsanız dosya Windows formatında (CRLF). Düzeltmek için: tr -d '\r' < dosya.txt > temiz.txt

03 tac: ters sıra

tac (cat'in tersi), dosyanın son satırını önce gösterir. Log dosyalarında en son olayı hızlıca görmek için kullanışlıdır.

bash
# Dosyayı ters sırayla yazdır
tac dosya.txt

# Log'un son girişlerini önce göster, filtrele
tac /var/log/syslog | grep -m 5 'ERROR'   # son 5 hata

# Belirli ayırıcıyla ters sıra (satır değil, blok bazında)
tac -s '---' bolumler.txt    # --- ayırıcısına göre ters çevir

# sort -r ile fark: tac satır sırasını tersler,
# sort -r ise içeriği sıralar (farklı amaçlar)
tac dosya.txt                 # orijinal sırayı ters çevir
sort -r dosya.txt             # alfabetik ters sırala

# head + tac: son satırdan başlayarak ilk N'i bul
tac app.log | grep 'DEPLOY' | head -3  # son 3 deploy
-s SEP
Satır yerine belirtilen ayırıcıya göre blokları ters çevir
-b
Ayırıcıyı önce değil, sonra ekle (separator before)

04 less: sayfalama ve navigasyon

less büyük dosyaları belleğe tamamen almadan sayfalayarak gösterir. İnteraktif navigasyon ve arama ile tam bir dosya tarayıcısıdır.

bash
# Dosyayı aç
less buyuk_dosya.log

# Pipe çıktısını say (man sayfaları gibi)
man grep | less
git log --oneline | less

# Son satırda başla (log dosyaları için)
less +G /var/log/syslog

# Belirli satırdan başla
less +100 dosya.txt          # 100. satırdan

# Arama ile başla
less +/ERROR app.log         # ilk ERROR'dan başla

# Satır numaralarını göster
less -N dosya.txt
TuşİşlevTuşİşlev
Space / fBir sayfa ileribBir sayfa geri
j / ↓Bir satır aşağık / ↑Bir satır yukarı
g / <Dosya başıG / >Dosya sonu
/desenİleri ara?desenGeri ara
nSonraki eşleşmeNÖnceki eşleşme
qÇıkFCanlı takip (tail -f gibi)
mİşaret koy'İşarete git
v$EDITOR'da açhYardım
F TUŞU

less içindeyken F'ye basarak tail -f gibi canlı takip moduna geçebilirsiniz. Durdurmak için Ctrl+C, sonra normal navigasyona dönmek için herhangi bir tuş.

05 less: arama, işaretleme ve çoklu dosya

less'in güçlü özelliklerine çoğu kullanıcı hiç ulaşmaz: çoklu dosya, işaret koyma, pipe'tan okuma.

bash
# Çoklu dosya aç
less dosya1.log dosya2.log dosya3.log
# :n → sonraki dosya, :p → önceki dosya, :d → kapat

# Arama (less içinde)
# /ERROR    → ileri arama
# ?WARN     → geri arama
# n / N     → sonraki/önceki eşleşme

# Grep ile kombine: sadece eşleşenleri say
less app.log
# &ERROR → sadece ERROR içeren satırları göster (filtre modu)
# &       → filtreyi kaldır

# İşaret koyma
# ma      → 'a' etiketiyle işaret koy
# 'a      → 'a' işaretine git
# ''      → son konuma dön

# Satır numarasına git
# 100g    → 100. satıra
# 50%     → dosyanın %50'sine
& FILTRE MODU

less içindeyken &ERROR yazarsanız sadece "ERROR" içeren satırlar gösterilir — diğerleri gizlenir. & yazıp Enter'a basarak filtreyi kaldırırsınız. Büyük log dosyalarında grep | less'ten daha hızlıdır.

06 less: yararlı seçenekler

Komut satırı seçenekleri ve LESS ortam değişkeni ile less'i özelleştirmek.

bash
# Satır numaraları göster
less -N dosya.txt

# Uzun satırları kes (kaydırma yok)
less -S genis_dosya.txt   # ← → ile kaydır

# Renk çıktısını koru (ANSI escape)
less -R renkli_cikti.txt

# Kullanım: git log, grep renkleriyle
git log --color | less -R
grep --color=always 'ERROR' app.log | less -R

# Çıkışta ekranı temizleme (varsayılan: içerik kalır)
less -X dosya.txt

# Satır sayısı az ise otomatik çık
less -F dosya.txt    # tek sayfaya sığıyorsa az gibi davran

# LESS ortam değişkeniyle varsayılan seçenekler
export LESS='-R -F -X'  # ~/.bashrc'ye ekle

# Binary dosya göster (uyarıyı atla)
less -f binary.bin
-N
Satır numaraları göster
-S
Uzun satırları yatay kes (kaydırma ile erişilir)
-R
ANSI renk kodlarını yorumla
-F
İçerik tek sayfaya sığıyorsa otomatik çık
-X
Çıkışta ekranı temizleme — içerik terminalde kalır
LESS=
Varsayılan seçenekler için ortam değişkeni

07 Pratik vakalar

Günlük kullanımda en çok karşılaşılan dosya görüntüleme senaryoları.

bash — Renkli log takibi
# grep renkleriyle ERROR ve WARN vurgula, less'te gez
grep --color=always -E 'ERROR|WARN|INFO' app.log | less -R
bash — Birden fazla log dosyasını birleştirip ara
# Eski ve yeni log'u birleştir (cat'in asıl amacı)
cat /var/log/nginx/access.log.1 /var/log/nginx/access.log \
  | grep 'POST /api/' \
  | less
bash — Config dosyası hızlı inceleme
# Yorumları ve boş satırları atlayarak göster
grep -v -E '^#|^$' /etc/ssh/sshd_config | less

# Tüm config dosyalarını birleştir
cat /etc/nginx/conf.d/*.conf | less -N
bash — JSONL'i formatla ve gez
# JSON Lines dosyasını güzel formatla ve gez
cat events.jsonl | jq '.' | less -R

# Ya da her satırı tek obje olarak formatla
while IFS= read -r line; do
  echo "$line" | jq '.'
  echo '---'
done < events.jsonl | less
bash — En kısa ~/.bashrc seçenekleri
# ~/.bashrc veya ~/.bash_profile'a ekle
export LESS='-R -F -X -i'
# -R: renk koru, -F: kısa dosyayı otomatik çık
# -X: çıkışta temizleme, -i: büyük/küçük harf duyarsız arama

# less'i varsayılan pager yap
export PAGER='less'
export MANPAGER='less -X'

Hatırlanacaklar

  • cat dosya | araç antipattern — araç dosya yaz
  • cat'in asıl amacı: birden fazla dosyayı birleştirmek
  • cat -A: Windows satır sonu (^M$) ve tab (^I) görünür
  • tac: log'un son girişini önce görmek için
  • less +G: dosyanın sonunda başla; less +/PATTERN: aramayla başla
  • less içinde F: tail -f gibi canlı takip; Ctrl+C ile çık
  • less içinde &PATTERN: sadece eşleşen satırları göster (filtre modu)
  • LESS='-R -F -X' ~ ~/.bashrc'ye ekle

Devam: head, tail — ilk/son satırlar ve canlı takip · stat, file — dosya bilgisi ve tür tespiti