1 puan yazan GN⁺ 2026-01-04 | 1 yorum | WhatsApp'ta paylaş
  • less komutunun çeşitli özellikleri ve kısayol kombinasyonları sayesinde dosya gezintisi, arama, filtreleme, yer imi kullanımı ve seçenek değiştirme işlemleri verimli şekilde yapılabilir
  • Birden fazla dosya aynı anda açılabilir ve :n, :p, :e, :d komutlarıyla dosyalar arasında gezinme, ekleme ve silme mümkündür
  • Arama (/, ?, n, N) ve filtreleme (&, &!) özellikleri kullanılarak belirli desenler hızlıca bulunabilir veya hariç tutulabilir
  • Yer imleri (m, ') ve parantez eşleştirme özelliği ile uzun belgelerde veya kod dosyalarında konumlar arasında geçiş kolaylaşır
  • Çalışma sırasında seçenek değiştirme (-S, -R, -N vb.) ve harici komut çalıştırma (!) sayesinde less kapatılmadan ortam anında ayarlanabilir

Birden fazla dosyayla çalışma

  • less, yalnızca bir pipeline'ın sonunda kullanılan bir araç değildir; birden fazla dosya doğrudan argüman olarak açılabilir
    • Örnek: less file1 file2 file3
  • Çalışma sırasında da :e file.h komutuyla yeni dosya eklenebilir
  • :n ile sonraki dosyaya, :p ile önceki dosyaya, :x veya :rewind ile ilk dosyaya dönülebilir
  • :d komutuyla mevcut dosya listeden kaldırılabilir

Gezinme özellikleri

  • 3141G gibi sayı+G girilerek belirli bir satır numarasına gidilebilir
  • 75% gibi sayı+% ile dosyanın yüzdesel konumuna atlanabilir
  • /desen ile ileri yönde arama, ?desen ile geri yönde arama, n/N ile sonraki/önceki sonuca geçiş yapılabilir
    • !desen eşleşmeyen satırları bulur, * birden fazla dosyada arama yapar, @ aramayı ilk dosyadan başlatır, @* ise tüm dosyaların tamamında arama yapar

Filtreleme özellikleri

  • &desen ile yalnızca bu desenle eşleşen satırlar gösterilir; dahili bir grep gibi çalışır
  • &!desen ile desenle eşleşmeyen satırlar gösterilir; log dosyalarını incelerken kullanışlıdır

Yer imleri ve parantez eşleştirme

  • m + karakter ile yer imi ayarlanır, ' + karakter ile o konuma gidilir
    • Örnek: OPTIONS bölümü için mo, EXAMPLES bölümü için me yer imi koyup ardından 'o, 'e ile geçiş yapılabilir
  • (, [, { gibi bir parantez ekranın ilk satırındaysa, ilgili parantez girildiğinde eşleşen paranteze atlanır
    • Tersine, kapanan parantez son satırdaysa açılan paranteze gidilir
  • alt+ctrl+b gibi kombinasyonlarla kullanıcı tanımlı parantez çiftleri belirtilebilir

Seçenek değiştirme ve harici komut çalıştırma

  • Çalışma sırasında - sonrasına seçenek girerek ayarlar anında değiştirilebilir
    • -S: satır kaydırmayı aç/kapat
    • -G: arama vurgulaması
    • -i/-I: büyük/küçük harf duyarlılığı ayarı
    • -R: ANSI renklerini göster
    • -N/-n: satır numaralarını göster/gizle
  • ! komutuyla harici komut çalıştırılabilir (!date, !bc vb.)

Ortam değişkenleri ve diğer özellikler

  • Sık kullanılan seçenekler $LESS ortam değişkeninde saklanabilir
    • Örnek: LESS="-RNe" → renkleri göster, satır numaralarını göster, dosya sonunda otomatik çık
  • v komutuyla geçerli dosya $VISUAL editöründe açılabilir
  • o veya O komutuyla standart girdiden okunan içerik dosyaya kaydedilebilir
  • less, ctags tabanlı etiket atlama özelliğini destekler, ancak kullanım sıklığı düşüktür

1 yorum

 
GN⁺ 2026-01-04
Hacker News yorumları
  • follow özelliğinin atlanmış olması şaşırtıcıydı. İlk başta biraz garip bir UX gibi hissettiriyor ama alışınca birçok durumda tail'den daha iyi oluyor
    less +F ile çalıştırdığınızda giriş akışını veya dosyayı gerçek zamanlı olarak takip ederek gösterir. <C-c> ile takibi durdurup normal less gibi gezinebilir, ardından F (büyük harf) tuşuna basarak takibi yeniden başlatabilirsiniz

    • Pipe girdisini (kubectl logs | less +F) takip ederken <C-c> tuşuna basarsanız tüm pipe süreci sonlanır ve bu yüzden tekrar F ile takibi sürdüremezsiniz. less içinde takibi <C-x> ile durdurmaya yönelik bir alternatif var ama çoğu shell bu tuşu yakalıyor
    • tail içinde Enter'a basarak son satırın altına boş satır ekleyebilirsiniz. Birden fazla çalıştırma sonucunu ayırarak görmek güzel olduğu için hâlâ bu tek özellik yüzünden tail kullanıyorum
    • “Biraz garip” ifadesindense bunun kötü bir UX olduğunu düşünüyorum. Zorunlu olarak mod değiştirmeyi gerektirmeden, yeni veri geldiğinde otomatik yenilense iyi olurdu
    • Yeni çıktı otomatik eklenirken aynı anda gezinmeye de izin veren bir mod olsa güzel olurdu. Terminaldeki gibi sadece bir otomatik kaydırma geçişi yeterli gibi görünüyor
    • Eskiden “follow”un dosya tanımlayıcılarını özel şekilde ele alan karmaşık bir özellik olduğunu sanıyordum ama aslında sadece EOF sonrasında polling yapmaya devam etmekten ibaretmiş. Yani normal dosya açma ile takip modu arasında özünde bir fark yok ve yazılım kolayca geçiş yapabiliyor
  • -X veya --no-init seçeneği çıkışta ekranı temizlememeyi sağlar. Ben genelde ekranı korumayı tercih ediyorum; böylece önceki içeriğe bakabiliyor veya kopyala-yapıştır yapabiliyorum

    • -X davranışını sadece ara sıra kullanmak istiyorsanız bu başlıktaki ipucuna bakabilirsiniz
    • -E ile birlikte kullanıldığında, çıktı terminal boyutundan küçükse hemen çıkar. Birçok seçeneği birleştirip sık sık “less -SEXIER” kullanıyorum. Akılda kalması da kolay
  • Uzun loglarda hata ayıklarken, sadece okumak istediğim kısımları & ile filtreliyor, gereksiz kısımları da &! ile hariç tutuyorum. Regex de destekliyor. Bazen yavaş olabiliyor ama anlık filtreleme için faydalı

  • İki faydalı ipucu var
    -L seçeneği giriş dosyası ön işlemeyi atlar; böylece log dosyası adları logfile.1, logfile.2 gibi döndürüldüğünde bunların yanlışlıkla nroff olarak işlenmesini engeller
    Ayrıca arama yaparken ilk karakter olarak Ctrl-R girerseniz, regex değil düz metin olarak arama yapabilirsiniz

  • ~/.lesskey dosyasıyla tuş atamaları ayarlanabiliyor. Ben s tuşunu geri kaydırmaya atadım; böylece d ve s ile tek elle hızlıca sayfa aşağı/yukarı yapabiliyorum
    macOS'in varsayılan less sürümünde bu özellik yok, bu yüzden Homebrew ile kurmak gerekiyor (örnek yapılandırma, ilgili açıklama)

    • Ben de N tuşunu next-file için atıyorum. macOS'ta lesskey olmaması gerçekten can sıkıcı
  • OpenBSD'nin man aracı etiketleri less'e aktarabiliyor; böylece :t test gibi belirli bir bölüme doğrudan gidilebiliyor. İlginç bir özellik ama pratikte neredeyse hiç kullanmıyorum.
    Sadece / ile arama yapmak gibi tutarlı arayüz daha sezgisel geliyor.
    Bu arada BSD ailesi anlam tabanlı belgeler oluşturmak için mdoc makro setini kullanıyor ve OpenBSD bunları işlemek için mandoc programını kullanıyor (mdoc belgesi)

  • ^q ile less'ten çıkarken ekranı temizlememeyi, normal q ile ise eskisi gibi çıkışta ekranı temizlemeyi ayarlayabilirsiniz

    echo '^q toggle-option -redraw-screen\nq' >> ~/.config/lesskey
    

    less'i -X olmadan çalıştırmanız gerekir; özellikle git log gibi önceki çıktıya bakmanız gereken durumlarda çok kullanışlıdır

  • less içinde harici komuta pipe etme özelliği de var.
    Örneğin ma ile bir işaret koyup |a ile mevcut konumdan o işarete kadar olan içeriği harici bir komuta gönderebilirsiniz.
    Haber veya e-postanın bir kısmını kaydetmek için kullanışlıdır.
    Ayrıca -j seçeneğiyle arama sonuçlarının ekranın üstünden kaç satır aşağıda gösterileceğini ayarlayabilirsiniz

    • Ben de bu pipe özelliğini git log ile kullanıyorum. Commit'i seçtikten sonra kısayolla git show çalıştırıyor veya doğrudan fixup işlemi yapıyorum.
      bash debug trap'i ve keyd-application-mapper kullanarak o anda çalışan komutu algılıyor, ilgili commit hash'ini çıkarıp bir script ile işliyorum
  • less(1) içindeki regex motoru çok yavaş. Büyük dosyalarla uğraşırken grep veya ripgrep ile arama yapıp sonuçları görüntülemek için less'e aktarıyorum

  • s tuşuyla pipe verisini bir dosyaya kaydedebilirsiniz. Kopyala-yapıştırdan çok daha rahat

    • Ben de bunu sık kullanıyorum. Uzun süren bir sürecin çıktısını less içinde izliyorum ve sonuç faydalıysa ancak o zaman s ile kaydediyorum.
      tee de kullanılabilir ama o her zaman dosya bıraktığı için gereksiz durumlarda verimsiz oluyor