NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
CS

Linuxové příkazy

grep: Hledání v Linuxu jako profesionál

grep přežije každou aktualizaci toolchainu, protože úloha se nikdy nemění: najděte řádky, na kterých záleží v textu, který roste rychleji, než jej kdokoli čistí. Jeho skutečnou silou je slovní zásoba příznaků, která promění hledání v odpověď: okolní kontext, seznamy souborů, obrácené shody a ukončovací kódy, na které se může skript shellu větvit. Když se server chová špatně, vyšetřování začíná grep a častěji, než kdokoli připouští, tam také končí.

Klíčové body

  1. Prohledávejte rekurzivně za účelem: grep -rni 'fail2ban' /var/log --include='*.log' samostatně přeskakuje binární soubory a komprimované archivy; holý grep -r přes /var/log učí tuto lekci pomalým způsobem.
  2. Kontext dělá shody čitelné: -A 3 zobrazuje řádky za, -B 3 před, -C 5 oba; -l vypíše pouze názvy souborů, -c počítá shody na soubor a -L převrátí seznam na to, co chybí.
  3. Výstupní kódy jsou součástí smlouvy: 0 znamená shodu, 1 znamená žádnou shodu, 2 znamená chybu; skript, který spouští grep -q a ignoruje tento rozdíl, zachází s úspěchem a mlčením stejně.
  4. Seznamy řetězových souborů null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; zahodí párování Z a -0 a první název souboru s mezerou přeruší kanál.
  5. Použijte -E jako výchozí úroveň regulárního výrazu pro čitelné střídání a sáhněte po -P (rozhledy, \d třídy) pouze v případě, že souhlasíte s tím, že jde o rozšíření GNU, které BSD grep neunese.
  6. -F zachází se vzorem jako s doslovným textem: rychlejší a imunní vůči metaznakům regulárních výrazů, které se vkradou z proměnných vložených přímo z lístku.
  7. --exclude-dir=.git a --exclude-dir=node_modules udržují rekurzivní vyhledávání mimo adresáře, které existují, jen aby je zpomalily; jména hláskovat explicitně ve skriptech, protože expanze složených závorek je výhodou bash, nikoli funkcí grep.
  8. Udržujte zvyky oddělené: --color=auto pro interaktivní pohodlí, žádná barva ve skriptech (únikové sekvence poškozují protokoly) a -n (čísla řádků), aby další osoba mohla najít místo, které jste vložili.

Poznámka z terénu

Jednou jsem ve 2 hodiny ráno proběhl holou grep -r přes celou farmu klienta a dostal jsem čtyřicet minut ticha za své potíže; přidání --include='*.log' a -l ukončilo tiket na místě. Návyky zahrnout a ukončit kód nyní vstoupí dříve než vzor.

Časté dotazy

Proč grep někdy tiskne „shody binárních souborů“ místo mého řádku?

NUL byte blízko shody způsobí, že GNU grep bude soubor považovat za binární; přidat -a pro vynucení textového režimu nebo -I pro úplné přeskočení binárních souborů, což je správné výchozí nastavení pro smíšené adresáře protokolů.

Mám místo toho použít ripgrep?

ripgrep je rychlejší a ve výchozím nastavení přeskakuje binární a skryté soubory, ale grep existuje v každé krabici, do které se kdy dostanete SSH, včetně záchranných obrázků. Nejprve se naučte grep; sáhněte po rg, kde je náhodou nainstalován.

Jak vyhledám otočené, komprimované protokoly?

zgrep prohledává soubory .gz transparentně a zstdgrep pokrývá přepnutí novějších kompresorů; včerejší jehla obvykle žije uvnitř jednoho z nich, takže nástroje se počítají jako základní hygiena.

Jak přiřadit slovo, ale ne delší slovo, které jej obsahuje?

Použijte -w pro shodu celého slova a -x pro shodu celého řádku; když vzory potřebují části slov, třídy znaků jako [Ss]server poskytují přesnou kontrolu bez zplošťování velkých a malých písmen všude jinde.

Jak Kinetikatech pomáhá s linuxové příkazy

Dnes děláme tohle: Příkazy a skriptovací návyky, které rozhodují o tom, zda správce provozuje server nebo s ním bojuje: prohledávejte, transformujte, přenášejte a dohlížejte na text a procesy pomocí nástrojů, které jsou součástí každé základní instalace. Naše služba Zabezpečení linuxových serverů a Správa serverů pokrývá vše od posouzení po nasazení, nepřetržitý dohled a pohotovostní zásah do 30 minut.

Promluvte si s inženýrem

Problém se serverem? Hacknutý web? Pomalé načítání?

Kritické problémy vyřešeny do 30 minut — nepřetržitě, 7 dní v týdnu.

Požádat o pohotovostní podporu support@kinetikatech.com