less(1) komutunu kullanma ipuçları derlemesi
(blog.thechases.com)lesskomutunun ç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,:dkomutları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,-Nvb.) ve harici komut çalıştırma (!) sayesindelesskapatı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
- Örnek:
- Çalışma sırasında da
:e file.hkomutuyla yeni dosya eklenebilir :nile sonraki dosyaya,:pile önceki dosyaya,:xveya:rewindile ilk dosyaya dönülebilir:dkomutuyla mevcut dosya listeden kaldırılabilir
Gezinme özellikleri
3141Ggibi sayı+G girilerek belirli bir satır numarasına gidilebilir75%gibi sayı+% ile dosyanın yüzdesel konumuna atlanabilir/desenile ileri yönde arama,?desenile geri yönde arama,n/Nile sonraki/önceki sonuca geçiş yapılabilir!deseneş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
&desenile yalnızca bu desenle eşleşen satırlar gösterilir; dahili birgrepgibi çalışır&!desenile 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çinmeyer imi koyup ardından'o,'eile geçiş yapılabilir
- Örnek: OPTIONS bölümü için
(,[,{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+bgibi 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,!bcvb.)
Ortam değişkenleri ve diğer özellikler
- Sık kullanılan seçenekler
$LESSortam değişkeninde saklanabilir- Örnek:
LESS="-RNe"→ renkleri göster, satır numaralarını göster, dosya sonunda otomatik çık
- Örnek:
vkomutuyla geçerli dosya$VISUALeditöründe açılabiliroveyaOkomutuyla standart girdiden okunan içerik dosyaya kaydedilebilirless,ctagstabanlı etiket atlama özelliğini destekler, ancak kullanım sıklığı düşüktür
1 yorum
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 durumdatail'den daha iyi oluyorless +File çalıştırdığınızda giriş akışını veya dosyayı gerçek zamanlı olarak takip ederek gösterir.<C-c>ile takibi durdurup normallessgibi gezinebilir, ardındanF(büyük harf) tuşuna basarak takibi yeniden başlatabilirsinizkubectl logs | less +F) takip ederken<C-c>tuşuna basarsanız tüm pipe süreci sonlanır ve bu yüzden tekrarFile takibi sürdüremezsiniz.lessiçinde takibi<C-x>ile durdurmaya yönelik bir alternatif var ama çoğu shell bu tuşu yakalıyortailiç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ündentailkullanıyorum-Xveya--no-initseç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-Xdavranışını sadece ara sıra kullanmak istiyorsanız bu başlıktaki ipucuna bakabilirsiniz-Eile 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 kolayUzun 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
-Lseçeneği giriş dosyası ön işlemeyi atlar; böylece log dosyası adlarılogfile.1,logfile.2gibi döndürüldüğünde bunların yanlışlıklanroffolarak işlenmesini engellerAyrıca arama yaparken ilk karakter olarak
Ctrl-Rgirerseniz, regex değil düz metin olarak arama yapabilirsiniz~/.lesskeydosyasıyla tuş atamaları ayarlanabiliyor. Benstuşunu geri kaydırmaya atadım; böylecedvesile tek elle hızlıca sayfa aşağı/yukarı yapabiliyorummacOS'in varsayılan
lesssürümünde bu özellik yok, bu yüzden Homebrew ile kurmak gerekiyor (örnek yapılandırma, ilgili açıklama)Ntuşunu next-file için atıyorum. macOS'ta lesskey olmaması gerçekten can sıkıcıOpenBSD'nin
manaracı etiketleriless'e aktarabiliyor; böylece:t testgibi 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
mdocmakro setini kullanıyor ve OpenBSD bunları işlemek içinmandocprogramını kullanıyor (mdoc belgesi)^qileless'ten çıkarken ekranı temizlememeyi, normalqile ise eskisi gibi çıkışta ekranı temizlemeyi ayarlayabilirsinizless'i-Xolmadan çalıştırmanız gerekir; özelliklegit loggibi önceki çıktıya bakmanız gereken durumlarda çok kullanışlıdırlessiçinde harici komuta pipe etme özelliği de var.Örneğin
maile bir işaret koyup|aile 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
-jseçeneğiyle arama sonuçlarının ekranın üstünden kaç satır aşağıda gösterileceğini ayarlayabilirsinizgit logile kullanıyorum. Commit'i seçtikten sonra kısayollagit showçalıştırıyor veya doğrudan fixup işlemi yapıyorum.bashdebug trap'i vekeyd-application-mapperkullanarak o anda çalışan komutu algılıyor, ilgili commit hash'ini çıkarıp bir script ile işliyorumless(1)içindeki regex motoru çok yavaş. Büyük dosyalarla uğraşırkengrepveyaripgrepile arama yapıp sonuçları görüntülemek içinless'e aktarıyorumstuşuyla pipe verisini bir dosyaya kaydedebilirsiniz. Kopyala-yapıştırdan çok daha rahatlessiçinde izliyorum ve sonuç faydalıysa ancak o zamansile kaydediyorum.teede kullanılabilir ama o her zaman dosya bıraktığı için gereksiz durumlarda verimsiz oluyor