Linux Komutları ve Kabuk Becerileri
grep: Linux'u Bir Profesyonel Gibi Aramak
grep her araç zinciri yenilemesinde hayatta kalır çünkü iş asla değişmez: kimsenin temizlemediğinden daha hızlı büyüyen metnin içindeki önemli satırları bulun. Gerçek gücü, bir aramayı cevaba dönüştüren bayrak sözlüğüdür: çevreleyen bağlam, dosya adı listeleri, tersine çevrilmiş eşleşmeler ve bir kabuk betiğinin dallanabileceği çıkış kodları. Bir sunucu hatalı davrandığında, soruşturma grep ile başlar ve herkesin kabul ettiğinden daha sık olarak burada da biter.
Ana noktalar
- Amaca uygun yinelemeli arama yapın: grep -rni 'fail2ban' /var/log --include='*.log' ikili dosyaları ve sıkıştırılmış arşivleri kendi başına atlar; /var/log üzerinde çıplak bir grep -r bu dersi yavaş bir şekilde öğretir.
- Bağlam eşleşmeleri okunabilir hale getirir: -A 3 sonraki satırları, -B 3 öncesi, -C 5 her ikisini de gösterir; -l yalnızca dosya adlarını listeler, -c dosya başına eşleşmeleri sayar ve -L listeyi eksik olana çevirir.
- Çıkış kodları sözleşmenin bir parçasıdır: 0 eşleştiği anlamına gelir, 1 eşleşme olmadığı anlamına gelir, 2 hata anlamına gelir; grep -q komutunu çalıştıran ve bu ayrımı göz ardı eden bir komut dosyası, başarı ve sessizliğe aynı şekilde davranır.
- Zincir dosya listeleri null güvenli bir şekilde: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; Z ve -0 eşleşmesini bırakın ve boşluk içeren ilk dosya adı boru hattını keser.
- Okunabilir dönüşüm için varsayılan regex düzeyi olarak -E'yi kullanın ve -P'ye (arama çevreleri, \d sınıfları) yalnızca bunun BSD grep'in taşımayacağı bir GNU uzantısı olduğunu kabul ettiğinizde ulaşın.
- -F, modeli gerçek metin olarak ele alır: daha hızlıdır ve doğrudan bir biletten yapıştırılan değişkenlerden gizlice giren regex meta karakterlerine karşı bağışıklıdır.
- --exclude-dir=.git ve --exclude-dir=node_modules yinelemeli aramaları yalnızca onları yavaşlatmak için var olan dizinlerin dışında tutar; küme ayracı genişletmesi bir grep özelliği değil, bir bash kolaylığı olduğundan, komut dosyalarında adları açıkça heceleyin.
- Alışkanlıkları ayrı tutun: --color=auto etkileşimli rahatlık için, komut dosyalarında renk yok (bozuk günlüklerden kaçış dizileri) ve -n (satır numaraları) açık, böylece bir sonraki kişi yapıştırdığınız noktayı bulabilir.
Saha notu
Bir keresinde sabah saat 2'de bir müşterinin tüm kütük çiftliğinde çıplak bir grep -r çalıştırdım ve sorunum için kırk dakikalık bir sessizlik aldım; --include='*.log' ve -l ekleyerek bileti anında sonlandırdık. Ekleme ve çıkış kodu alışkanlıkları artık kalıptan önce devreye giriyor.
Sık sorulan sorular
Neden grep bazen benim satırım yerine 'ikili dosya eşleşmeleri' yazdırıyor?
Eşleşmenin yakınındaki bir NUL baytı, GNU grep'in dosyayı ikili olarak değerlendirmesini sağlar; Metin modunu zorlamak için -a ekleyin veya ikili dosyaları tamamen atlamak için -I ekleyin; bu, karma günlük dizinlerinde doğru varsayılandır.
Bunun yerine ripgrep kullanmalı mıyım?
ripgrep daha hızlıdır ve varsayılan olarak ikili ve gizli dosyaları atlar, ancak grep, kurtarma görüntüleri de dahil olmak üzere SSH kullanacağınız her kutuda mevcuttur. Önce grep'i öğrenin; Kurulu olduğu yerde rg'ye ulaşın.
Döndürülmüş, sıkıştırılmış günlükleri nasıl arayabilirim?
zgrep, .gz dosyalarını şeffaf bir şekilde arar ve zstdgrep, değiştirilen yeni kompresör rotasyonunu kapsar; dünün iğnesi genellikle bunlardan birinin içinde bulunur, dolayısıyla aletler temel hijyen sayılır.
Bir kelimeyi ancak onu içeren daha uzun bir kelimeyle nasıl eşleştiririm?
Tam kelime eşleştirme için -w ve tam satır eşleşmeleri için -x kullanın; kalıplar sözcük parçalarına ihtiyaç duyduğunda, [Ss]erver gibi karakter sınıfları, diğer yerlerde büyük/küçük harf düzleştirmeden hassas kontrol sağlar.
Kinetikatech linux komutları ve kabuk becerileri konusunda nasıl yardımcı oluyor
Bu işi yüzlerce kez yaptık: Bir yöneticinin bir sunucuyu mu çalıştıracağına yoksa onunla mücadele mi edeceğine karar veren komutlar ve komut dosyası oluşturma alışkanlıkları: her temel kurulumda bulunan araçlarla metin ve süreçleri arayın, dönüştürün, aktarın ve denetleyin. Linux Sunucu Güvenliği ve Sunucu Yönetimi ile işin tamamını devralırsınız. Değerlendiririz, uygularız, 7/24 izleriz ve kritik anlarda 30 dakika içinde müdahale ederiz.