Linuxové príkazy
grep: Hľadajte Linux ako profesionál
grep prežije každé obnovenie toolchainu, pretože úloha sa nikdy nemení: nájdite riadky, na ktorých záleží v texte, ktorý rastie rýchlejšie, ako ho ktokoľvek čistí. Jeho skutočnou silou je vlajkový slovník, ktorý premení vyhľadávanie na odpoveď: okolitý kontext, zoznamy názvov súborov, invertované zhody a ukončovacie kódy, podľa ktorých sa skript shellu môže rozvetvovať. Keď sa server správa nesprávne, vyšetrovanie začína grep a častejšie, než ktokoľvek pripúšťa, tam tiež končí.
Kľúčové body
- Hľadajte rekurzívne s cieľom: grep -rni 'fail2ban' /var/log --include='*.log' preskakuje binárne súbory a komprimované archívy samostatne; holé grep -r nad /var/log učí túto lekciu pomalým spôsobom.
- Kontext robí zhody čitateľné: -A 3 zobrazuje riadky za, -B 3 pred, -C 5 oba; -l uvádza iba názvy súborov, -c počíta zhody na súbor a -L obráti zoznam na chýbajúce.
- Výstupné kódy sú súčasťou zmluvy: 0 znamená zhoda, 1 znamená žiadna zhoda, 2 znamená chybu; skript, ktorý spúšťa grep -q a ignoruje tento rozdiel, zaobchádza s úspechom a tichom rovnako.
- Zoznamy reťazových súborov null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; vypustite párovanie Z a -0 a prvý názov súboru s medzerou preruší kanál.
- Použite -E ako predvolenú úroveň regulárneho výrazu pre čitateľné striedanie a siahnite po -P (obhľady, \d triedy) len vtedy, keď akceptujete, že je to rozšírenie GNU BSD grep nebude niesť.
- -F zaobchádza so vzorom ako s doslovným textom: rýchlejšie a odolné voči metaznakom regulárnych výrazov, ktoré sa vkradnú z premenných vložených priamo z lístka.
- --exclude-dir=.git a --exclude-dir=node_modules chránia rekurzívne vyhľadávanie mimo adresárov, ktoré existujú, len aby ich spomalili; hláskovať názvy explicitne v skriptoch, pretože rozšírenie zložených zátvoriek je pohodlie bash, nie funkcia grep.
- Udržujte zvyky oddelené: --color=auto pre interaktívny komfort, bez farby v skriptoch (únikové sekvencie poškodzujú protokoly) a -n (čísla riadkov), aby mohla ďalšia osoba nájsť miesto, ktoré ste prilepili.
Poznámka z teréna
Raz som o 2:00 prebehol holý grep -r cez celú farmu klienta a dostal som štyridsať minút ticha za svoje problémy; pridanie --include='*.log' a -l ukončilo lístok na mieste. Zvyky zahrnutia a ukončenia kódu teraz vstupujú skôr ako vzor.
Často kladené otázky
Prečo grep niekedy tlačí „zhody binárnych súborov“ namiesto môjho riadku?
NUL bajt blízko zhody spôsobí, že GNU grep bude súbor považovať za binárny; pridať -a na vynútenie textového režimu alebo -I na úplné preskočenie binárnych súborov, čo je správne predvolené nastavenie pre zmiešané protokolové adresáre.
Mám namiesto toho použiť ripgrep?
ripgrep je rýchlejší a v predvolenom nastavení preskakuje binárne a skryté súbory, ale grep existuje v každom boxe, do ktorého kedy vstúpite SSH, vrátane záchranných obrázkov. Najprv sa naučte grep; siahnite po rg, kde je náhodou nainštalovaný.
Ako vyhľadám rotované, komprimované protokoly?
zgrep prehľadne prehľadáva súbory .gz a zstdgrep pokrýva rotáciu novších kompresorov prepnutú; včerajšia ihla zvyčajne žije v jednej z nich, takže nástroje sa považujú za základnú hygienu.
Ako priradím slovo, ale nie dlhšie slovo, ktoré ho obsahuje?
Použite -w pre zhodu celého slova a -x pre zhodu v celom riadku; keď vzory vyžadujú časti slov, triedy znakov ako [Ss]server poskytujú presné ovládanie bez sploštenia veľkých a malých písmen všade inde.
Ako Kinetikatech pomáha s linuxové príkazy
Návrh je jednoduchý: Príkazy a skriptovacie návyky, ktoré rozhodujú o tom, či správca prevádzkuje server alebo s ním bojuje: vyhľadávajte, transformujte, prenášajte a dohliadajte na text a procesy pomocou nástrojov, ktoré sú súčasťou každej základnej inštalácie. Svernúť našu službu Bezpečnosť Linuxových serverov a Správa serverov a máte kompletné pokrytie: seriózne hodnotenie, čistá implementácia, monitoring nonstop.