Yeni yazı: Kümeyi Kurmak: Ready Yazması Kümenin Çalıştığı Anlamına Gelmez
Linux'da Dosya İçeriğini Görüntüleme: Less, Tail, Head Komutları

Linux'da Dosya İçeriğini Görüntüleme: Less, Tail, Head Komutları

İçindekiler

Bir sunucuda sorun ararken ilk yaptığınız şey bir log dosyasına bakmaktır. Ama o dosya 2 GB ise ve siz cat yazdıysanız, terminaliniz dakikalarca akar ve aradığınız satır çoktan yukarı kaymıştır. Dosyanın tamamını okumakla bir kısmını okumak farklı komutların işidir.

Bu yazıda dört komutu ve hangisinin ne zaman doğru seçim olduğunu göreceğiz: cat, less, tail ve head.

cat: Küçük Dosyayı Bas, Büyüğünden Uzak Dur

cat dosyanın tamamını ekrana basar:

cat dosya.txt

Adı “birleştirmek"ten gelir; asıl işi budur:

cat bolum1.txt bolum2.txt > tamami.txt

Büyük dosyalarda cat kullanmayın. Dosyanın tamamı terminalden akar, ekranınızda yalnızca son ekranlık kısım kalır ve bu sırada terminal boşuna meşgul olur. Böyle dosyalar less‘in işidir. Aynı şekilde bir ikili dosyayı (.jpg, .so, disk imajı) cat ile ekrana basarsanız terminal karakter setiniz bozulur — reset komutu düzeltir.

less: Belleğe Almadan Gezdirir ve Arar

less dosyayı sayfa sayfa gösterir, ileri ve geri gitmenize izin verir:

less buyuk_dosya.log

less dosyanın tamamını belleğe almaz, yalnızca gösterdiği kısmı okur; bu yüzden gigabaytlık bir dosyayı da anında açar.

less komutu kullanırken:

  • İleri gitmek için “Space”, geri gitmek için “b” tuşunu kullanabilirsiniz.
  • Dosyanın sonuna gitmek için “G”, başına dönmek için “g”.
  • Arama: /hata yazıp Enter’a basın; sonraki eşleşmeye “n”, öncekine “N” ile geçersiniz. Büyük bir log dosyasında aradığınız satırı bulmanın en hızlı yolu budur.
  • Çıkmak için “q” tuşunu kullanabilirsiniz.

less canlı log da izleyebilir. +F ile açtığınızda tail -f gibi davranır; farkı şu: Ctrl+C ile takibi bırakıp geri kaydırabilir, aramanızı yapıp F ile yeniden takibe dönebilirsiniz. tail -f‘te bunu yapamazsınız, çıkıp yeniden açmanız gerekir:

less +F /var/log/nginx/access.log

tail: Sondan Oku, -f ile Canlı İzle

tail dosyanın sonundan başlayarak belirtilen sayıda satırı gösterir. Bir log dosyasına bakarken en çok işinize yarayan kısım zaten sonudur — son yazılan satır, en son olan şeydir:

tail -n 10 dosya.log

Bu örnekte, dosyanın son 10 satırını görüntülemek için “-n” parametresini kullanıyoruz.

tail‘in asıl gücü -f seçeneğidir. Komut dosyanın sonunda bekler ve yeni satır yazıldıkça ekrana düşürür; bir servisi yeniden başlatırken logu canlı izlemenin yolu budur. Çıkmak için Ctrl+C:

tail -f /var/log/syslog

Bu dosyanın adı dağıtıma göre değişir: Debian ve Ubuntu’da /var/log/syslog, RHEL ailesinde /var/log/messages. Arch ve Fedora gibi yalnızca systemd journal kullanan sistemlerde ise böyle bir dosya hiç yokturls: cannot access '/var/log/syslog' alırsınız. Oralarda karşılığı journalctl‘dir; -f seçeneği aynı işi yapar:

journalctl -f
journalctl -u nginx -f     # yalnızca tek bir servisin logu

Log dosyaları logrotate tarafından döndürülüyorsa -f eski dosyaya bağlı kalır ve yeni kayıtları göremezsiniz. Uzun süre izleyeceğiniz durumlarda -F kullanın — dosya adı yeniden oluşturulduğunda ona geçer:

tail -F /var/log/nginx/access.log

head: Baştan Oku, Dosyanın Ne Olduğunu Anla

head dosyanın başından belirtilen sayıda satırı gösterir:

head -n 20 dosya.txt

Kardeş komutu olan tail‘deki gibi, dosyanın başlangıcındaki ilk 20 satırı görüntülemek için “-n” parametresini kullanıyoruz. Bir CSV dosyasının sütun başlıklarını görmek ya da tanımadığınız bir dosyanın gerçekten metin olup olmadığını anlamak için en hızlı yol budur.

Sonuç

Dördü de dosya okur; seçim dosyanın boyutuna ve neye baktığınıza göre değişir:

  • cat dosyanın tamamını basar, bu yüzden yalnızca küçük dosyalar içindir. Büyük bir log dosyasında terminali doldurur, ikili dosyada karakter setini bozar.
  • less dosyayı belleğe almadan gezdirir. / ile arama, n ile sonraki eşleşme — büyük bir dosyada aradığınız satırı bulmanın en hızlı yolu.
  • tail -f logu canlı izler, -F ise dosya döndürüldüğünde bile izlemeye devam eder. Bir servisi yeniden başlatırken açık tutulacak pencere budur. Geri kaydırmak isterseniz less +F aynı işi yapar ve takibi bırakıp geri dönmenize izin verir.
  • Log dosyasının adı dağıtıma bağlıdır, journal’ın adı değildir. /var/log/syslog Debian’a özgüdür; systemd kullanan her sistemde journalctl -u <servis> -f çalışır.

Yol haritasında sırada dosyalara kimin erişebildiği var: Dosya Türleri ve İzinleri (chmod, chown, chgrp). Serinin tamamına GNU/Linux Öğrenme Yolculuğu sayfasından ulaşabilirsiniz.

Paylaş :

İlgili Yazılar

Symbolic Link ve Hard Link

Symbolic Link ve Hard Link

Bir dosyayı sildiniz ve yerinde duran bağlantı hâlâ orada — ama artık hiçbir şeye açılmıyor. Ya da tam tersi: dosyayı sildiniz, du çıktısında yer boşalmadı. İkisi de aynı sorunun iki yüzüdür: Linux’ta bir dosya adı ile dosyanın kendisi ayrı şeylerdir ve ln komutunun iki farklı biçimi bu ikisini farklı uçlarından bağlar.

Linux Dosya ve Dizin Hiyerarşisi: Verileri Organize Etme Sanatı

Linux Dosya ve Dizin Hiyerarşisi: Verileri Organize Etme Sanatı

Bir Linux sunucusuna ilk kez bağlandığınızda / altında yirmiye yakın dizin görürsünüz ve hiçbirinin adı ne işe yaradığını söylemez: /etc, /opt, /srv, /var. Bu isimler rastgele seçilmedi — her biri Filesystem Hierarchy Standard (FHS) adlı bir sözleşmenin parçası. O sözleşmeyi bilen yönetici, ömründe hiç görmediği bir dağıtımda bile log dosyasını, yapılandırmayı ve kullanıcı verisini nerede arayacağını bilir.

Kabukta İlk Adımlar: Komutlar ve Temel Seçenekler

Kabukta İlk Adımlar: Komutlar ve Temel Seçenekler

GNU/Linux işletim sisteminde kabuk (shell) kullanarak temel komutları ve komutlarda kullanılan temel seçenekleri öğrenmeye başlayacağız. Kabuk, kullanıcıların işletim sistemiyle etkileşim kurmasını sağlayan arayüzdür ve komut satırını kullanarak birçok işlemi gerçekleştirebiliriz. Haydi, kabukta ilk adımlarımıza başlayalım ve komutların temel seçeneklerini öğrenelim. Diğer konuları ‘GNU/Linux Öğrenme Yolculuğu’ bu adresten ulaşabilirsiniz.